data_migrate 9.0.0 → 9.1.0

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +1 -2
  3. data/.github/workflows/gempush.yml +6 -7
  4. data/.gitignore +3 -1
  5. data/Appraisals +0 -4
  6. data/Changelog.md +35 -0
  7. data/README.md +9 -7
  8. data/lib/data_migrate/{data_migrator_five.rb → data_migrator.rb} +1 -12
  9. data/lib/data_migrate/data_schema.rb +1 -1
  10. data/lib/data_migrate/database_tasks.rb +32 -72
  11. data/lib/data_migrate/{schema_migration_six.rb → schema_migration.rb} +4 -2
  12. data/lib/data_migrate/{status_service_five.rb → status_service.rb} +12 -6
  13. data/lib/data_migrate/tasks/data_migrate_tasks.rb +15 -36
  14. data/lib/data_migrate/version.rb +1 -1
  15. data/lib/data_migrate.rb +3 -8
  16. data/spec/data_migrate/config_spec.rb +13 -10
  17. data/spec/data_migrate/data_migrator_spec.rb +13 -34
  18. data/spec/data_migrate/data_spec.rb +0 -11
  19. data/spec/data_migrate/database_tasks_spec.rb +10 -58
  20. data/spec/data_migrate/legacy_migrator_spec.rb +6 -18
  21. data/spec/data_migrate/migration.rb +11 -13
  22. data/spec/data_migrate/migration_context_spec.rb +11 -37
  23. data/spec/data_migrate/schema_dumper_spec.rb +10 -23
  24. data/spec/data_migrate/schema_migration_spec.rb +40 -42
  25. data/spec/data_migrate/status_service_spec.rb +26 -55
  26. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +31 -66
  27. data/spec/db/data/20091231235959_some_name.rb +1 -1
  28. data/spec/db/data/20171231235959_super_update.rb +1 -1
  29. data/spec/spec_helper.rb +2 -8
  30. data/tasks/databases.rake +15 -13
  31. metadata +8 -20
  32. data/.ruby-version +0 -1
  33. data/.travis.yml +0 -17
  34. data/Gemfile.rails5.2 +0 -10
  35. data/gemfiles/rails_5.2.gemfile +0 -8
  36. data/lib/data_migrate/schema_migration_five.rb +0 -31
  37. data/spec/db/6.0/20091231235959_some_name.rb +0 -9
  38. data/spec/db/6.0/20171231235959_super_update.rb +0 -9
  39. data/spec/db/data-6.0/20091231235959_some_name.rb +0 -9
  40. data/spec/db/data-6.0/20171231235959_super_update.rb +0 -9
  41. data/spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext +0 -1
  42. data/spec/db/migrate/5.2/20131111111111_late_migration.rb +0 -9
  43. data/spec/db/migrate/5.2/20202020202011_db_migration.rb +0 -9
  44. /data/spec/db/migrate/{6.0/20131111111111_late_migration.rb → 20131111111111_late_migration.rb} +0 -0
  45. /data/spec/db/migrate/{6.0/20202020202011_db_migration.rb → 20202020202011_db_migration.rb} +0 -0
@@ -3,33 +3,40 @@
3
3
  require "spec_helper"
4
4
 
5
5
  describe DataMigrate::Tasks::DataMigrateTasks do
6
- describe :dump do
7
- let(:db_config) do
8
- {
9
- adapter: "sqlite3",
10
- database: "spec/db/other_test.db"
11
- }
6
+ let(:connection_db_config) do
7
+ if Gem::Dependency.new("railties", ">= 6.1").match?("railties", Gem.loaded_specs["railties"].version)
8
+ ActiveRecord::Base.connection_db_config
9
+ else
10
+ ActiveRecord::Base.configurations.configs_for.first
12
11
  end
12
+ end
13
+
14
+ before do
15
+ ActiveRecord::SchemaMigration.create_table
16
+ DataMigrate::DataSchemaMigration.create_table
17
+ end
13
18
 
19
+ after do
20
+ ActiveRecord::Migration.drop_table("data_migrations") rescue nil
21
+ ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
22
+ end
23
+
24
+ describe :dump do
14
25
  before do
15
- allow(DataMigrate::DataMigrator).to receive(:db_config) { db_config }
16
26
  allow(DataMigrate::DatabaseTasks).to receive(:db_dir).and_return("spec/db")
17
- end
18
-
19
- after do
20
- ActiveRecord::Migration.drop_table("data_migrations")
27
+ DataMigrate::Tasks::DataMigrateTasks.migrate
21
28
  end
22
29
 
23
30
  context 'when not given a separate db config' do
24
31
  it 'does not override the default connection' do
25
- DataMigrate::Tasks::DataMigrateTasks.migrate
26
32
  expect(ActiveRecord::Base).not_to receive(:establish_connection)
27
33
  expect(DataMigrate::SchemaDumper).to receive(:dump)
34
+
28
35
  DataMigrate::Tasks::DataMigrateTasks.dump
29
36
  end
30
37
  end
31
38
 
32
- context 'when given ' do
39
+ context 'when given a separate db config' do
33
40
  let(:override_config) do
34
41
  {
35
42
  'host' => '127.0.0.1',
@@ -39,6 +46,7 @@ describe DataMigrate::Tasks::DataMigrateTasks do
39
46
  'password' => nil,
40
47
  }
41
48
  end
49
+ let(:paths) { ["spec/db/migrate"] }
42
50
 
43
51
  before do
44
52
  DataMigrate.configure do |config|
@@ -47,7 +55,6 @@ describe DataMigrate::Tasks::DataMigrateTasks do
47
55
  end
48
56
 
49
57
  it 'overrides the default connection' do
50
- DataMigrate::Tasks::DataMigrateTasks.migrate
51
58
  expect(ActiveRecord::Base).to receive(:establish_connection).with(override_config)
52
59
  DataMigrate::Tasks::DataMigrateTasks.dump
53
60
  end
@@ -55,32 +62,12 @@ describe DataMigrate::Tasks::DataMigrateTasks do
55
62
  end
56
63
 
57
64
  describe :migrate do
58
- let(:db_config) do
59
- {
60
- adapter: "sqlite3",
61
- database: "spec/db/test.db"
62
- }
63
- end
64
-
65
- before do
66
- allow(DataMigrate::DataMigrator).to receive(:db_config) { db_config }
67
- ActiveRecord::Base.establish_connection(db_config)
65
+ it "first run should run the first pending migration" do
66
+ expect { DataMigrate::Tasks::DataMigrateTasks.migrate }.to output(/20091231235959 SomeName: migrating/).to_stdout
68
67
  end
69
68
 
70
- after do
71
- ActiveRecord::Migration.drop_table("data_migrations")
72
- end
73
-
74
- it do
75
- expect {
76
- DataMigrate::Tasks::DataMigrateTasks.migrate
77
- }.to output(/20091231235959 SomeName: migrating/).to_stdout
78
- end
79
-
80
- it do
81
- expect {
82
- DataMigrate::Tasks::DataMigrateTasks.migrate
83
- }.to output(/20171231235959 SuperUpdate: migrating/).to_stdout
69
+ it "second run should run the second pending migration" do
70
+ expect { DataMigrate::Tasks::DataMigrateTasks.migrate }.to output(/20171231235959 SuperUpdate: migrating/).to_stdout
84
71
  end
85
72
  end
86
73
 
@@ -111,43 +98,21 @@ describe DataMigrate::Tasks::DataMigrateTasks do
111
98
  it "should abort with given message and print names and versions of pending migrations" do
112
99
  expect { subject }
113
100
  .to raise_error(SystemExit, message)
114
- .and output("You have 2 pending migrations:\n 1 A\n 2 B\n").to_stdout
101
+ .and output(match(/You have #{migrations.count} pending migrations:/)
102
+ .and match(Regexp.new(migrations.map { |m| m.slice(:version, :name)
103
+ .values.join("\\W+") }.join("\\W+")))).to_stdout
115
104
  end
116
105
  end
117
106
  end
118
107
 
119
- describe :status do
120
- let(:db_config) do
121
- {
122
- adapter: "sqlite3",
123
- database: "spec/db/test.db"
124
- }
125
- end
126
-
108
+ describe ".status" do
127
109
  before do
128
- if Rails::VERSION::MAJOR == 5
129
- ActiveRecord::Base.configurations['test'] = db_config
130
- else
131
- hash_config = ActiveRecord::DatabaseConfigurations::HashConfig.new('test', 'test', db_config)
132
- config_obj = ActiveRecord::DatabaseConfigurations.new([hash_config])
133
- allow(ActiveRecord::Base).to receive(:configurations).and_return(config_obj)
134
- end
135
-
136
- allow(Rails).to receive(:root) { '.' }
137
-
138
- if Rails::VERSION::MAJOR == 5
139
- allow(DataMigrate::Tasks::DataMigrateTasks).to receive(:schema_migrations_path) { 'spec/db/migrate/5.2' }
140
- else
141
- allow(DataMigrate::Tasks::DataMigrateTasks).to receive(:schema_migrations_path) { 'spec/db/migrate/6.0' }
142
- end
110
+ allow(Rails).to receive(:root) { "." }
111
+ allow(Rails).to receive(:application) { OpenStruct.new(config: OpenStruct.new(paths: { "db/migrate" => ["spec/db/migrate"] })) }
143
112
 
144
113
  DataMigrate::Tasks::DataMigrateTasks.migrate
145
114
  end
146
115
 
147
- after do
148
- ActiveRecord::Migration.drop_table("data_migrations")
149
- end
150
-
151
116
  it "should display data migration status" do
152
117
  expect {
153
118
  DataMigrate::Tasks::DataMigrateTasks.status
@@ -1,4 +1,4 @@
1
- class SomeName < ActiveRecord::Migration[5.2]
1
+ class SomeName < ActiveRecord::Migration[6.0]
2
2
  def up
3
3
  puts "Doing data migration"
4
4
  end
@@ -1,4 +1,4 @@
1
- class SuperUpdate < ActiveRecord::Migration[5.2]
1
+ class SuperUpdate < ActiveRecord::Migration[6.0]
2
2
  def up
3
3
  puts "Doing SuperUpdate"
4
4
  end
data/spec/spec_helper.rb CHANGED
@@ -20,14 +20,8 @@ RSpec.configure do |config|
20
20
  if example.metadata[:no_override]
21
21
  else
22
22
  @prev_data_migrations_path = DataMigrate.config.data_migrations_path
23
- if Rails::VERSION::MAJOR == 5
24
- DataMigrate.configure do |config|
25
- config.data_migrations_path = "spec/db/data"
26
- end
27
- else
28
- DataMigrate.configure do |config|
29
- config.data_migrations_path = "spec/db/6.0"
30
- end
23
+ DataMigrate.configure do |config|
24
+ config.data_migrations_path = "spec/db/data"
31
25
  end
32
26
  end
33
27
  end
data/tasks/databases.rake CHANGED
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'data_migrate/tasks/data_migrate_tasks'
2
4
 
3
5
  namespace :db do
4
6
  namespace :migrate do
5
7
  desc "Migrate the database data and schema (options: VERSION=x, VERBOSE=false)."
6
8
  task :with_data => :environment do
7
- DataMigrate::DataMigrator.assure_data_schema_table
9
+ DataMigrate::DataMigrator.create_data_schema_table
8
10
 
9
11
  ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
10
12
  target_version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
@@ -56,7 +58,7 @@ namespace :db do
56
58
  namespace :redo do
57
59
  desc 'Rollbacks the database one migration and re migrate up (options: STEP=x, VERSION=x).'
58
60
  task :with_data => :environment do
59
- DataMigrate::DataMigrator.assure_data_schema_table
61
+ DataMigrate::DataMigrator.create_data_schema_table
60
62
  if ENV["VERSION"]
61
63
  Rake::Task["db:migrate:down:with_data"].invoke
62
64
  Rake::Task["db:migrate:up:with_data"].invoke
@@ -72,7 +74,7 @@ namespace :db do
72
74
  task :with_data => :environment do
73
75
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
74
76
  raise "VERSION is required" unless version
75
- DataMigrate::DataMigrator.assure_data_schema_table
77
+ DataMigrate::DataMigrator.create_data_schema_table
76
78
  run_both = ENV["BOTH"] == "true"
77
79
  migrations = DataMigrate::DatabaseTasks.pending_migrations.keep_if{|m| m[:version] == version}
78
80
 
@@ -94,7 +96,7 @@ namespace :db do
94
96
  task :with_data => :environment do
95
97
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
96
98
  raise "VERSION is required" unless version
97
- DataMigrate::DataMigrator.assure_data_schema_table
99
+ DataMigrate::DataMigrator.create_data_schema_table
98
100
  run_both = ENV["BOTH"] == "true"
99
101
  migrations = DataMigrate::DatabaseTasks.past_migrations.keep_if{|m| m[:version] == version}
100
102
 
@@ -123,7 +125,7 @@ namespace :db do
123
125
  desc 'Rolls the schema back to the previous version (specify steps w/ STEP=n).'
124
126
  task :with_data => :environment do
125
127
  step = ENV['STEP'] ? ENV['STEP'].to_i : 1
126
- DataMigrate::DataMigrator.assure_data_schema_table
128
+ DataMigrate::DataMigrator.create_data_schema_table
127
129
  DataMigrate::DatabaseTasks.past_migrations[0..(step - 1)].each do | past_migration |
128
130
  DataMigrate::DatabaseTasks.run_migration(past_migration, :down)
129
131
  end
@@ -136,7 +138,7 @@ namespace :db do
136
138
  namespace :forward do
137
139
  desc 'Pushes the schema to the next version (specify steps w/ STEP=n).'
138
140
  task :with_data => :environment do
139
- DataMigrate::DataMigrator.assure_data_schema_table
141
+ DataMigrate::DataMigrator.create_data_schema_table
140
142
  step = ENV['STEP'] ? ENV['STEP'].to_i : 1
141
143
  DataMigrate::DatabaseTasks.forward(step)
142
144
  Rake::Task["db:_dump"].invoke
@@ -147,7 +149,7 @@ namespace :db do
147
149
  namespace :version do
148
150
  desc "Retrieves the current schema version numbers for data and schema migrations"
149
151
  task :with_data => :environment do
150
- DataMigrate::DataMigrator.assure_data_schema_table
152
+ DataMigrate::DataMigrator.create_data_schema_table
151
153
  puts "Current Schema version: #{ActiveRecord::Migrator.current_version}"
152
154
  puts "Current Data version: #{DataMigrate::DataMigrator.current_version}"
153
155
  end
@@ -200,7 +202,7 @@ namespace :data do
200
202
  namespace :migrate do
201
203
  desc 'Rollbacks the database one migration and re migrate up (options: STEP=x, VERSION=x).'
202
204
  task :redo => :environment do
203
- DataMigrate::DataMigrator.assure_data_schema_table
205
+ DataMigrate::DataMigrator.create_data_schema_table
204
206
  if ENV["VERSION"]
205
207
  Rake::Task["data:migrate:down"].invoke
206
208
  Rake::Task["data:migrate:up"].invoke
@@ -212,7 +214,7 @@ namespace :data do
212
214
 
213
215
  desc 'Runs the "up" for a given migration VERSION.'
214
216
  task :up => :environment do
215
- DataMigrate::DataMigrator.assure_data_schema_table
217
+ DataMigrate::DataMigrator.create_data_schema_table
216
218
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
217
219
  raise "VERSION is required" unless version
218
220
  DataMigrate::DataMigrator.run(:up, DataMigrate::DatabaseTasks.data_migrations_path, version)
@@ -223,7 +225,7 @@ namespace :data do
223
225
  task :down => :environment do
224
226
  version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
225
227
  raise "VERSION is required" unless version
226
- DataMigrate::DataMigrator.assure_data_schema_table
228
+ DataMigrate::DataMigrator.create_data_schema_table
227
229
  DataMigrate::DataMigrator.run(:down, DataMigrate::DatabaseTasks.data_migrations_path, version)
228
230
  Rake::Task["data:dump"].invoke
229
231
  end
@@ -236,7 +238,7 @@ namespace :data do
236
238
 
237
239
  desc 'Rolls the schema back to the previous version (specify steps w/ STEP=n).'
238
240
  task :rollback => :environment do
239
- DataMigrate::DataMigrator.assure_data_schema_table
241
+ DataMigrate::DataMigrator.create_data_schema_table
240
242
  step = ENV['STEP'] ? ENV['STEP'].to_i : 1
241
243
  DataMigrate::DataMigrator.rollback(DataMigrate::DatabaseTasks.data_migrations_path, step)
242
244
  Rake::Task["data:dump"].invoke
@@ -244,7 +246,7 @@ namespace :data do
244
246
 
245
247
  desc 'Pushes the schema to the next version (specify steps w/ STEP=n).'
246
248
  task :forward => :environment do
247
- DataMigrate::DataMigrator.assure_data_schema_table
249
+ DataMigrate::DataMigrator.create_data_schema_table
248
250
  step = ENV['STEP'] ? ENV['STEP'].to_i : 1
249
251
  # TODO: No worky for .forward
250
252
  # DataMigrate::DataMigrator.forward('db/data/', step)
@@ -257,7 +259,7 @@ namespace :data do
257
259
 
258
260
  desc "Retrieves the current schema version number for data migrations"
259
261
  task :version => :environment do
260
- DataMigrate::DataMigrator.assure_data_schema_table
262
+ DataMigrate::DataMigrator.create_data_schema_table
261
263
  puts "Current data version: #{DataMigrate::DataMigrator.current_version}"
262
264
  end
263
265
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_migrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew J Vargo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-02-21 00:00:00.000000000 Z
13
+ date: 2023-06-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -198,18 +198,14 @@ files:
198
198
  - ".rspec"
199
199
  - ".rubocop.yml"
200
200
  - ".ruby-style.yml"
201
- - ".ruby-version"
202
- - ".travis.yml"
203
201
  - Appraisals
204
202
  - Changelog.md
205
203
  - Gemfile
206
- - Gemfile.rails5.2
207
204
  - Gemfile.rails6.1
208
205
  - LICENSE
209
206
  - README.md
210
207
  - Rakefile
211
208
  - data_migrate.gemspec
212
- - gemfiles/rails_5.2.gemfile
213
209
  - gemfiles/rails_6.0.gemfile
214
210
  - gemfiles/rails_6.1.gemfile
215
211
  - gemfiles/rails_7.0.gemfile
@@ -217,7 +213,7 @@ files:
217
213
  - lib/capistrano/data_migrate/migrate.rb
218
214
  - lib/data_migrate.rb
219
215
  - lib/data_migrate/config.rb
220
- - lib/data_migrate/data_migrator_five.rb
216
+ - lib/data_migrate/data_migrator.rb
221
217
  - lib/data_migrate/data_schema.rb
222
218
  - lib/data_migrate/data_schema_migration.rb
223
219
  - lib/data_migrate/database_tasks.rb
@@ -225,9 +221,8 @@ files:
225
221
  - lib/data_migrate/migration_context.rb
226
222
  - lib/data_migrate/railtie.rb
227
223
  - lib/data_migrate/schema_dumper.rb
228
- - lib/data_migrate/schema_migration_five.rb
229
- - lib/data_migrate/schema_migration_six.rb
230
- - lib/data_migrate/status_service_five.rb
224
+ - lib/data_migrate/schema_migration.rb
225
+ - lib/data_migrate/status_service.rb
231
226
  - lib/data_migrate/tasks/data_migrate_tasks.rb
232
227
  - lib/data_migrate/version.rb
233
228
  - lib/generators/data_migrate.rb
@@ -247,11 +242,6 @@ files:
247
242
  - spec/data_migrate/schema_migration_spec.rb
248
243
  - spec/data_migrate/status_service_spec.rb
249
244
  - spec/data_migrate/tasks/data_migrate_tasks_spec.rb
250
- - spec/db/6.0/20091231235959_some_name.rb
251
- - spec/db/6.0/20171231235959_super_update.rb
252
- - spec/db/data-6.0/20091231235959_some_name.rb
253
- - spec/db/data-6.0/20171231235959_super_update.rb
254
- - spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext
255
245
  - spec/db/data/20091231235959_some_name.rb
256
246
  - spec/db/data/20171231235959_super_update.rb
257
247
  - spec/db/data/20181128000207_excluded_file.rb.other_ext
@@ -259,10 +249,8 @@ files:
259
249
  - spec/db/data/partial_schema/test_data_schema.rb
260
250
  - spec/db/data/schema/data_schema.rb
261
251
  - spec/db/data/schema/test_data_schema.rb
262
- - spec/db/migrate/5.2/20131111111111_late_migration.rb
263
- - spec/db/migrate/5.2/20202020202011_db_migration.rb
264
- - spec/db/migrate/6.0/20131111111111_late_migration.rb
265
- - spec/db/migrate/6.0/20202020202011_db_migration.rb
252
+ - spec/db/migrate/20131111111111_late_migration.rb
253
+ - spec/db/migrate/20202020202011_db_migration.rb
266
254
  - spec/generators/data_migration/data_migration_generator_spec.rb
267
255
  - spec/spec_helper.rb
268
256
  - tasks/.gitkeep
@@ -286,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
286
274
  - !ruby/object:Gem::Version
287
275
  version: '0'
288
276
  requirements: []
289
- rubygems_version: 3.3.26
277
+ rubygems_version: 3.4.10
290
278
  signing_key:
291
279
  specification_version: 4
292
280
  summary: Rake tasks to migrate data alongside schema changes.
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 2.7.5
data/.travis.yml DELETED
@@ -1,17 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.7
4
- - 3.0
5
- - 3.2
6
- script: bundle exec rspec
7
- gemfile:
8
- - gemfiles/rails_5.2.gemfile
9
- - gemfiles/rails_6.0.gemfile
10
- - gemfiles/rails_6.1.gemfile
11
- - gemfiles/rails_7.0.gemfile
12
- jobs:
13
- exclude:
14
- - rvm: 3.0
15
- gemfile: gemfiles/rails_5.2.gemfile
16
- - rvm: 3.2
17
- gemfile: gemfiles/rails_5.2.gemfile
data/Gemfile.rails5.2 DELETED
@@ -1,10 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in data_migrate.gemspec
4
- gemspec
5
- %w[
6
- activerecord
7
- railties
8
- ].each do |rails_gem|
9
- gem rails_gem, '~> 5.2'
10
- end
@@ -1,8 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "rails", "~> 5.2.3"
6
- gem "sqlite3", "~> 1.4"
7
-
8
- gemspec path: "../"
@@ -1,31 +0,0 @@
1
- module DataMigrate
2
- # Helper class to getting access to db schema
3
- # to allow data/schema combiation tasks
4
- class SchemaMigration
5
- def self.pending_schema_migrations
6
- all_migrations = DataMigrate::MigrationContext.new(migrations_paths).migrations
7
- sort_migrations(
8
- ActiveRecord::Migrator.new(:up, all_migrations).
9
- pending_migrations.
10
- map {|m| { version: m.version, name: m.name, kind: :schema }}
11
- )
12
- end
13
-
14
- def self.run(direction, migration_paths, version)
15
- ActiveRecord::MigrationContext.new(migration_paths).run(direction, version)
16
- end
17
-
18
- def self.sort_migrations(set1, set2 = nil)
19
- migrations = set1 + (set2 || [])
20
- migrations.sort {|a, b| sort_string(a) <=> sort_string(b)}
21
- end
22
-
23
- def self.migrations_paths
24
- Rails.application.config.paths["db/migrate"].to_a
25
- end
26
-
27
- def self.sort_string(migration)
28
- "#{migration[:version]}_#{migration[:kind] == :data ? 1 : 0}"
29
- end
30
- end
31
- end
@@ -1,9 +0,0 @@
1
- class SomeName < ActiveRecord::Migration[6.0]
2
- def up
3
- puts "Doing data migration"
4
- end
5
-
6
- def down
7
- raise ActiveRecord::IrreversibleMigration
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class SuperUpdate < ActiveRecord::Migration[6.0]
2
- def up
3
- puts "Doing data migration"
4
- end
5
-
6
- def down
7
- raise ActiveRecord::IrreversibleMigration
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class SomeName < ActiveRecord::Migration[6.0]
2
- def up
3
- puts "Doing data migration"
4
- end
5
-
6
- def down
7
- puts "Undoing SomeName"
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class SuperUpdate < ActiveRecord::Migration[6.0]
2
- def up
3
- puts "Doing SuperUpdate"
4
- end
5
-
6
- def down
7
- puts "Undoing SuperUpdate"
8
- end
9
- end
@@ -1 +0,0 @@
1
- # This file should be excluded
@@ -1,9 +0,0 @@
1
- class LateMigration < ActiveRecord::Migration[5.2]
2
- def up
3
- puts "Doing schema LateMigration"
4
- end
5
-
6
- def down
7
- puts "Undoing LateMigration"
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class DbMigration < ActiveRecord::Migration[5.2]
2
- def up
3
- puts "Doing schema migration"
4
- end
5
-
6
- def down
7
- puts "Undoing DbMigration"
8
- end
9
- end