seed_migration 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/seed_migration/migrator.rb +30 -7
- data/lib/seed_migration/version.rb +1 -1
- data/lib/tasks/seed_migration_tasks.rake +2 -16
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38f8055cf600a0ea55f7ae4b315f1b534a448779
|
4
|
+
data.tar.gz: 2629240a52ecda680e6fec7b29ad46f05a0eba20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78cf3c5d47ec09b44d44404d4ef7c26881d4365318517984fc34698285cf336de5c40cb2e7290a17cf37a5d1e3e95537128e992020aac66f60ad2ab3f3d33fec
|
7
|
+
data.tar.gz: b1e061859b4e9fa78a4b43d4d6fc7cdb37c6d337b589f2d4cd8c57b0c4d83557bc65d1ab3664b7a8ca04c5d6dbe6aaf5efdf8c9dedaec5eaa902f46bc9829b48
|
@@ -68,6 +68,16 @@ module SeedMigration
|
|
68
68
|
migration = migration_path(migration)
|
69
69
|
new(migration).up
|
70
70
|
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.run_migrations(filename = nil)
|
74
|
+
if filename.blank?
|
75
|
+
# Run any outstanding migrations
|
76
|
+
run_new_migrations
|
77
|
+
else
|
78
|
+
path = self.migration_path(filename)
|
79
|
+
new(path).up
|
80
|
+
end
|
71
81
|
create_seed_file
|
72
82
|
end
|
73
83
|
|
@@ -75,10 +85,15 @@ module SeedMigration
|
|
75
85
|
return SeedMigration::DataMigration.maximum("version")
|
76
86
|
end
|
77
87
|
|
78
|
-
def self.rollback_migrations(steps = 1)
|
79
|
-
|
80
|
-
|
81
|
-
|
88
|
+
def self.rollback_migrations(filename = nil, steps = 1)
|
89
|
+
if filename.blank?
|
90
|
+
to_run = get_last_x_migrations(steps)
|
91
|
+
to_run.each do |migration|
|
92
|
+
new(migration).down
|
93
|
+
end
|
94
|
+
else
|
95
|
+
path = migration_path(filename)
|
96
|
+
new(path).down
|
82
97
|
end
|
83
98
|
create_seed_file
|
84
99
|
end
|
@@ -86,7 +101,7 @@ module SeedMigration
|
|
86
101
|
def self.bootstrap(last_timestamp = nil)
|
87
102
|
# replace with logger ?
|
88
103
|
p "Assume migrated up to #{last_timestamp}"
|
89
|
-
files =
|
104
|
+
files = get_migration_files(last_timestamp.to_s)
|
90
105
|
files.each do |file|
|
91
106
|
name = file.split('/').last
|
92
107
|
version = name.split('_').first
|
@@ -163,7 +178,7 @@ module SeedMigration
|
|
163
178
|
end
|
164
179
|
|
165
180
|
def self.get_migration_files(last_timestamp = nil)
|
166
|
-
files = Dir.glob(
|
181
|
+
files = Dir.glob(migration_path("*_*.rb"))
|
167
182
|
if last_timestamp.present?
|
168
183
|
files.delete_if do |file|
|
169
184
|
timestamp = File.basename(file).split('_').first
|
@@ -223,9 +238,17 @@ SeedMigration::Migrator.bootstrap(#{last_migration})
|
|
223
238
|
attributes.sort.each do |key, value|
|
224
239
|
sorted_attributes[key] = value
|
225
240
|
end
|
241
|
+
|
242
|
+
if Rails::VERSION::MAJOR == 3
|
243
|
+
model_creation_string = "#{instance.class}.create(#{JSON.parse(sorted_attributes.to_json).to_s}, :without_protection => true)"
|
244
|
+
elsif Rails::VERSION::MAJOR == 4
|
245
|
+
model_creation_string = "#{instance.class}.create(#{JSON.parse(sorted_attributes.to_json).to_s})"
|
246
|
+
end
|
247
|
+
|
248
|
+
# With pretty indents, please.
|
226
249
|
return <<-eos
|
227
250
|
|
228
|
-
#{
|
251
|
+
#{model_creation_string}
|
229
252
|
eos
|
230
253
|
end
|
231
254
|
end
|
@@ -1,25 +1,11 @@
|
|
1
1
|
namespace :seed do
|
2
2
|
desc "Run new data migrations."
|
3
3
|
task :migrate => :environment do
|
4
|
-
|
5
|
-
if filename.blank?
|
6
|
-
# Run any outstanding migrations
|
7
|
-
SeedMigration::Migrator.run_new_migrations
|
8
|
-
else
|
9
|
-
path = SeedMigration::Migrator.migration_path(filename)
|
10
|
-
SeedMigration::Migrator.new(path).up
|
11
|
-
end
|
4
|
+
SeedMigration::Migrator.run_migrations(ENV['MIGRATION'])
|
12
5
|
end
|
13
6
|
|
14
7
|
desc "Revert last data migration."
|
15
8
|
task :rollback => :environment do
|
16
|
-
|
17
|
-
if filename.blank?
|
18
|
-
steps = ENV["STEP"] || 1
|
19
|
-
SeedMigration::Migrator.rollback_migrations(steps)
|
20
|
-
else
|
21
|
-
path = SeedMigration::Migrator.migration_path(filename)
|
22
|
-
SeedMigration::Migrator.new(path).down
|
23
|
-
end
|
9
|
+
SeedMigration::Migrator.rollback_migrations(ENV["MIGRATION"], ENV["STEP"] || 1)
|
24
10
|
end
|
25
11
|
end
|
metadata
CHANGED
@@ -1,15 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seed_migration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy O'Neill
|
8
8
|
- Daniel Schwartz
|
9
|
+
- Ilya Rubnich
|
10
|
+
- Pierre Jambet
|
9
11
|
autorequire:
|
10
12
|
bindir: bin
|
11
13
|
cert_chain: []
|
12
|
-
date: 2014-06-
|
14
|
+
date: 2014-06-17 00:00:00.000000000 Z
|
13
15
|
dependencies:
|
14
16
|
- !ruby/object:Gem::Dependency
|
15
17
|
name: sqlite3
|
@@ -85,6 +87,8 @@ description: Rails gem for Data Migrations
|
|
85
87
|
email:
|
86
88
|
- aoneill@harrys.com
|
87
89
|
- daniel@harrys.com
|
90
|
+
- ilya@harrys.com
|
91
|
+
- pierre@harrys.com
|
88
92
|
executables: []
|
89
93
|
extensions: []
|
90
94
|
extra_rdoc_files: []
|