data_migrate 8.5.0 → 9.1.1

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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +34 -0
  3. data/.github/workflows/gempush.yml +6 -7
  4. data/.gitignore +3 -1
  5. data/Appraisals +0 -4
  6. data/Changelog.md +40 -0
  7. data/README.md +9 -7
  8. data/data_migrate.gemspec +1 -10
  9. data/lib/data_migrate/config.rb +1 -1
  10. data/lib/data_migrate/{data_migrator_five.rb → data_migrator.rb} +1 -12
  11. data/lib/data_migrate/data_schema.rb +1 -1
  12. data/lib/data_migrate/database_tasks.rb +33 -72
  13. data/lib/data_migrate/{schema_migration_six.rb → schema_migration.rb} +4 -2
  14. data/lib/data_migrate/{status_service_five.rb → status_service.rb} +12 -6
  15. data/lib/data_migrate/tasks/data_migrate_tasks.rb +15 -36
  16. data/lib/data_migrate/version.rb +1 -1
  17. data/lib/data_migrate.rb +3 -8
  18. data/spec/data_migrate/config_spec.rb +13 -10
  19. data/spec/data_migrate/data_migrator_spec.rb +13 -34
  20. data/spec/data_migrate/data_spec.rb +0 -11
  21. data/spec/data_migrate/database_tasks_spec.rb +10 -59
  22. data/spec/data_migrate/legacy_migrator_spec.rb +6 -18
  23. data/spec/data_migrate/migration.rb +11 -13
  24. data/spec/data_migrate/migration_context_spec.rb +11 -37
  25. data/spec/data_migrate/schema_dumper_spec.rb +10 -23
  26. data/spec/data_migrate/schema_migration_spec.rb +40 -42
  27. data/spec/data_migrate/status_service_spec.rb +26 -55
  28. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +31 -66
  29. data/spec/db/data/20091231235959_some_name.rb +1 -1
  30. data/spec/db/data/20171231235959_super_update.rb +1 -1
  31. data/spec/spec_helper.rb +2 -8
  32. data/tasks/databases.rake +15 -13
  33. metadata +14 -31
  34. data/.ruby-version +0 -1
  35. data/.travis.yml +0 -14
  36. data/Gemfile.rails5.2 +0 -10
  37. data/gemfiles/rails_5.2.gemfile +0 -8
  38. data/lib/data_migrate/schema_migration_five.rb +0 -31
  39. data/spec/db/6.0/20091231235959_some_name.rb +0 -9
  40. data/spec/db/6.0/20171231235959_super_update.rb +0 -9
  41. data/spec/db/data-6.0/20091231235959_some_name.rb +0 -9
  42. data/spec/db/data-6.0/20171231235959_super_update.rb +0 -9
  43. data/spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext +0 -1
  44. data/spec/db/migrate/5.2/20131111111111_late_migration.rb +0 -9
  45. data/spec/db/migrate/5.2/20202020202011_db_migration.rb +0 -9
  46. /data/spec/db/migrate/{6.0/20131111111111_late_migration.rb → 20131111111111_late_migration.rb} +0 -0
  47. /data/spec/db/migrate/{6.0/20202020202011_db_migration.rb → 20202020202011_db_migration.rb} +0 -0
@@ -1,30 +1,29 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "spec_helper"
3
4
 
4
5
  describe DataMigrate::StatusService do
5
- let(:subject) { DataMigrate::SchemaDumper }
6
- let(:db_config) do
7
- {
8
- adapter: "sqlite3",
9
- database: "spec/db/test.db"
10
- }
6
+ let(:subject) { DataMigrate::StatusService }
7
+ let(:stream) { StringIO.new }
8
+ let(:stream_data) { stream.read }
9
+ let(:connection_db_config) do
10
+ if Gem::Dependency.new("railties", ">= 6.1").match?("railties", Gem.loaded_specs["railties"].version)
11
+ ActiveRecord::Base.connection_db_config
12
+ else
13
+ ActiveRecord::Base.configurations.configs_for.first
14
+ end
11
15
  end
12
- let(:service) { DataMigrate::StatusService }
13
16
 
14
17
  context "table does not exists" do
15
18
  before do
16
- ActiveRecord::Base.establish_connection(db_config)
19
+ allow_any_instance_of(subject).to receive(:table_name) { "bogus"}
20
+
21
+ subject.dump(connection_db_config, stream)
22
+ stream.rewind
17
23
  end
18
24
 
19
25
  it "show error message" do
20
- allow_any_instance_of(service).to receive(:table_name) { "bogus"}
21
- stream = StringIO.new
22
-
23
- service.dump(ActiveRecord::Base.connection, stream)
24
-
25
- stream.rewind
26
- expected = "Data migrations table does not exist"
27
- expect(stream.read).to include expected
26
+ expect(stream_data).to include("Data migrations table does not exist")
28
27
  end
29
28
  end
30
29
 
@@ -34,69 +33,41 @@ describe DataMigrate::StatusService do
34
33
  end
35
34
 
36
35
  before do
37
- allow(DataMigrate::DataMigrator).
38
- to receive(:db_config) { db_config }.at_least(:once)
39
- ActiveRecord::Base.establish_connection(db_config)
40
-
41
36
  ActiveRecord::SchemaMigration.create_table
42
- DataMigrate::DataMigrator.assure_data_schema_table
37
+ DataMigrate::DataSchemaMigration.create_table
38
+ DataMigrate::DataSchemaMigration.create(fixture_file_timestamps.map { |t| { version: t } })
43
39
 
44
- ActiveRecord::Base.connection.execute <<-SQL
45
- INSERT INTO #{DataMigrate::DataSchemaMigration.table_name}
46
- VALUES #{fixture_file_timestamps.map { |t| "(#{t})" }.join(', ')}
47
- SQL
48
-
49
- allow_any_instance_of(service).to receive(:root_folder) { "./" }
40
+ subject.dump(connection_db_config, stream)
41
+ stream.rewind
50
42
  end
51
43
 
52
44
  after do
53
- ActiveRecord::Migration.drop_table("data_migrations")
45
+ ActiveRecord::Migration.drop_table("data_migrations") rescue nil
46
+ ActiveRecord::Migration.drop_table("schema_migrations") rescue nil
54
47
  end
55
48
 
56
49
  it "shows successfully executed migration" do
57
- stream = StringIO.new
58
- service.dump(ActiveRecord::Base.connection, stream)
59
- stream.rewind
60
-
61
50
  expected = " up 20091231235959 Some name"
62
- expect(stream.read).to include expected
51
+ expect(stream_data).to include expected
63
52
  end
64
53
 
65
54
  it "excludes files without .rb extension" do
66
- stream = StringIO.new
67
- service.dump(ActiveRecord::Base.connection, stream)
68
- stream.rewind
69
-
70
55
  expected = "20181128000207 Excluded file"
71
- expect(stream.read).to_not include expected
56
+ expect(stream_data).to_not include expected
72
57
  end
73
58
 
74
59
  it "shows missing file migration" do
75
- stream = StringIO.new
76
- service.dump(ActiveRecord::Base.connection, stream)
77
- stream.rewind
78
-
79
60
  expected = " up 20101231235959 ********** NO FILE **********"
80
- s = stream.read
81
- expect(s).to include expected
61
+ expect(stream_data).to include expected
82
62
  end
83
63
 
84
64
  it "shows migration that has not run yet" do
85
- stream = StringIO.new
86
- service.dump(ActiveRecord::Base.connection, stream)
87
- stream.rewind
88
-
89
65
  expected = " down 20171231235959 Super update"
90
- s = stream.read
91
- expect(s).to include expected
66
+ expect(stream_data).to include expected
92
67
  end
93
68
 
94
69
  it "outputs migrations in chronological order" do
95
- stream = StringIO.new
96
- service.dump(ActiveRecord::Base.connection, stream)
97
- stream.rewind
98
- s = stream.read
99
- expect(s.index("20091231235959")).to be < s.index("20111231235959")
70
+ expect(stream_data.index("20091231235959")).to be < stream_data.index("20111231235959")
100
71
  end
101
72
  end
102
73
  end
@@ -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: 8.5.0
4
+ version: 9.1.1
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-01-02 00:00:00.000000000 Z
13
+ date: 2023-08-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '5.0'
21
+ version: '6.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '5.0'
28
+ version: '6.0'
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: railties
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: '5.0'
35
+ version: '6.0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: '5.0'
42
+ version: '6.0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: appraisal
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -189,6 +189,7 @@ executables: []
189
189
  extensions: []
190
190
  extra_rdoc_files: []
191
191
  files:
192
+ - ".github/workflows/build.yml"
192
193
  - ".github/workflows/gempush.yml"
193
194
  - ".gitignore"
194
195
  - ".hound.yml"
@@ -197,18 +198,14 @@ files:
197
198
  - ".rspec"
198
199
  - ".rubocop.yml"
199
200
  - ".ruby-style.yml"
200
- - ".ruby-version"
201
- - ".travis.yml"
202
201
  - Appraisals
203
202
  - Changelog.md
204
203
  - Gemfile
205
- - Gemfile.rails5.2
206
204
  - Gemfile.rails6.1
207
205
  - LICENSE
208
206
  - README.md
209
207
  - Rakefile
210
208
  - data_migrate.gemspec
211
- - gemfiles/rails_5.2.gemfile
212
209
  - gemfiles/rails_6.0.gemfile
213
210
  - gemfiles/rails_6.1.gemfile
214
211
  - gemfiles/rails_7.0.gemfile
@@ -216,7 +213,7 @@ files:
216
213
  - lib/capistrano/data_migrate/migrate.rb
217
214
  - lib/data_migrate.rb
218
215
  - lib/data_migrate/config.rb
219
- - lib/data_migrate/data_migrator_five.rb
216
+ - lib/data_migrate/data_migrator.rb
220
217
  - lib/data_migrate/data_schema.rb
221
218
  - lib/data_migrate/data_schema_migration.rb
222
219
  - lib/data_migrate/database_tasks.rb
@@ -224,9 +221,8 @@ files:
224
221
  - lib/data_migrate/migration_context.rb
225
222
  - lib/data_migrate/railtie.rb
226
223
  - lib/data_migrate/schema_dumper.rb
227
- - lib/data_migrate/schema_migration_five.rb
228
- - lib/data_migrate/schema_migration_six.rb
229
- - lib/data_migrate/status_service_five.rb
224
+ - lib/data_migrate/schema_migration.rb
225
+ - lib/data_migrate/status_service.rb
230
226
  - lib/data_migrate/tasks/data_migrate_tasks.rb
231
227
  - lib/data_migrate/version.rb
232
228
  - lib/generators/data_migrate.rb
@@ -246,11 +242,6 @@ files:
246
242
  - spec/data_migrate/schema_migration_spec.rb
247
243
  - spec/data_migrate/status_service_spec.rb
248
244
  - spec/data_migrate/tasks/data_migrate_tasks_spec.rb
249
- - spec/db/6.0/20091231235959_some_name.rb
250
- - spec/db/6.0/20171231235959_super_update.rb
251
- - spec/db/data-6.0/20091231235959_some_name.rb
252
- - spec/db/data-6.0/20171231235959_super_update.rb
253
- - spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext
254
245
  - spec/db/data/20091231235959_some_name.rb
255
246
  - spec/db/data/20171231235959_super_update.rb
256
247
  - spec/db/data/20181128000207_excluded_file.rb.other_ext
@@ -258,10 +249,8 @@ files:
258
249
  - spec/db/data/partial_schema/test_data_schema.rb
259
250
  - spec/db/data/schema/data_schema.rb
260
251
  - spec/db/data/schema/test_data_schema.rb
261
- - spec/db/migrate/5.2/20131111111111_late_migration.rb
262
- - spec/db/migrate/5.2/20202020202011_db_migration.rb
263
- - spec/db/migrate/6.0/20131111111111_late_migration.rb
264
- - 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
265
254
  - spec/generators/data_migration/data_migration_generator_spec.rb
266
255
  - spec/spec_helper.rb
267
256
  - tasks/.gitkeep
@@ -270,13 +259,7 @@ homepage: https://github.com/ilyakatz/data-migrate
270
259
  licenses:
271
260
  - MIT
272
261
  metadata: {}
273
- post_install_message: |
274
- ********************************************************************************
275
- data-migrate: IMPORTANT: Breaking change introduced for migrations from v2.
276
-
277
- Failure to run the migration can have serious consequences.
278
- See Readme for more info.
279
- ********************************************************************************
262
+ post_install_message:
280
263
  rdoc_options: []
281
264
  require_paths:
282
265
  - lib
@@ -291,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
291
274
  - !ruby/object:Gem::Version
292
275
  version: '0'
293
276
  requirements: []
294
- rubygems_version: 3.3.26
277
+ rubygems_version: 3.4.10
295
278
  signing_key:
296
279
  specification_version: 4
297
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,14 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.7
4
- - 3.0
5
- script: bundle exec rspec
6
- gemfile:
7
- - gemfiles/rails_5.2.gemfile
8
- - gemfiles/rails_6.0.gemfile
9
- - gemfiles/rails_6.1.gemfile
10
- - gemfiles/rails_7.0.gemfile
11
- jobs:
12
- exclude:
13
- - rvm: 3.0
14
- 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