data_migrate 8.5.0 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) 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 -2
  5. data/Appraisals +5 -9
  6. data/Changelog.md +44 -0
  7. data/Gemfile.lock +148 -0
  8. data/README.md +9 -7
  9. data/data_migrate.gemspec +1 -10
  10. data/gemfiles/rails_6.1.gemfile +1 -1
  11. data/gemfiles/rails_6.1.gemfile.lock +227 -0
  12. data/gemfiles/rails_7.0.gemfile.lock +229 -0
  13. data/gemfiles/{rails_6.0.gemfile → rails_7.1.gemfile} +1 -1
  14. data/gemfiles/rails_7.1.gemfile.lock +262 -0
  15. data/lib/data_migrate/config.rb +1 -1
  16. data/lib/data_migrate/{data_migrator_five.rb → data_migrator.rb} +11 -34
  17. data/lib/data_migrate/data_schema.rb +2 -2
  18. data/lib/data_migrate/data_schema_migration.rb +24 -7
  19. data/lib/data_migrate/database_tasks.rb +37 -74
  20. data/lib/data_migrate/migration_context.rb +11 -8
  21. data/lib/data_migrate/rails_helper.rb +79 -0
  22. data/lib/data_migrate/schema_dumper.rb +1 -1
  23. data/lib/data_migrate/{schema_migration_six.rb → schema_migration.rb} +7 -4
  24. data/lib/data_migrate/{status_service_five.rb → status_service.rb} +14 -8
  25. data/lib/data_migrate/tasks/data_migrate_tasks.rb +16 -37
  26. data/lib/data_migrate/version.rb +1 -1
  27. data/lib/data_migrate.rb +4 -9
  28. data/spec/data_migrate/config_spec.rb +13 -10
  29. data/spec/data_migrate/data_migrator_spec.rb +25 -43
  30. data/spec/data_migrate/data_schema_migration_spec.rb +25 -8
  31. data/spec/data_migrate/data_spec.rb +1 -12
  32. data/spec/data_migrate/database_tasks_spec.rb +43 -76
  33. data/spec/data_migrate/migration.rb +11 -13
  34. data/spec/data_migrate/migration_context_spec.rb +20 -39
  35. data/spec/data_migrate/schema_dumper_spec.rb +11 -21
  36. data/spec/data_migrate/schema_migration_spec.rb +46 -41
  37. data/spec/data_migrate/status_service_spec.rb +29 -55
  38. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +32 -67
  39. data/spec/db/data/20091231235959_some_name.rb +1 -1
  40. data/spec/db/data/20171231235959_super_update.rb +1 -1
  41. data/spec/db/migrate/{5.2/20131111111111_late_migration.rb → 20131111111111_late_migration.rb} +1 -1
  42. data/spec/db/migrate/{6.0/20202020202011_db_migration.rb → 20202020202011_db_migration.rb} +1 -1
  43. data/spec/spec_helper.rb +2 -8
  44. data/tasks/databases.rake +15 -13
  45. metadata +20 -34
  46. data/.ruby-version +0 -1
  47. data/.travis.yml +0 -14
  48. data/Gemfile.rails5.2 +0 -10
  49. data/gemfiles/rails_5.2.gemfile +0 -8
  50. data/lib/data_migrate/legacy_migrator.rb +0 -22
  51. data/lib/data_migrate/schema_migration_five.rb +0 -31
  52. data/spec/data_migrate/legacy_migrator_spec.rb +0 -50
  53. data/spec/db/6.0/20091231235959_some_name.rb +0 -9
  54. data/spec/db/6.0/20171231235959_super_update.rb +0 -9
  55. data/spec/db/data-6.0/20091231235959_some_name.rb +0 -9
  56. data/spec/db/data-6.0/20171231235959_super_update.rb +0 -9
  57. data/spec/db/data-6.0/20181128000207_excluded_file.rb.other_ext +0 -1
  58. data/spec/db/migrate/5.2/20202020202011_db_migration.rb +0 -9
  59. data/spec/db/migrate/6.0/20131111111111_late_migration.rb +0 -9
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.2.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-01-02 00:00:00.000000000 Z
13
+ date: 2023-10-05 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.1'
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.1'
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.1'
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.1'
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,36 +198,35 @@ 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
204
+ - Gemfile.lock
206
205
  - Gemfile.rails6.1
207
206
  - LICENSE
208
207
  - README.md
209
208
  - Rakefile
210
209
  - data_migrate.gemspec
211
- - gemfiles/rails_5.2.gemfile
212
- - gemfiles/rails_6.0.gemfile
213
210
  - gemfiles/rails_6.1.gemfile
211
+ - gemfiles/rails_6.1.gemfile.lock
214
212
  - gemfiles/rails_7.0.gemfile
213
+ - gemfiles/rails_7.0.gemfile.lock
214
+ - gemfiles/rails_7.1.gemfile
215
+ - gemfiles/rails_7.1.gemfile.lock
215
216
  - lib/capistrano/data_migrate.rb
216
217
  - lib/capistrano/data_migrate/migrate.rb
217
218
  - lib/data_migrate.rb
218
219
  - lib/data_migrate/config.rb
219
- - lib/data_migrate/data_migrator_five.rb
220
+ - lib/data_migrate/data_migrator.rb
220
221
  - lib/data_migrate/data_schema.rb
221
222
  - lib/data_migrate/data_schema_migration.rb
222
223
  - lib/data_migrate/database_tasks.rb
223
- - lib/data_migrate/legacy_migrator.rb
224
224
  - lib/data_migrate/migration_context.rb
225
+ - lib/data_migrate/rails_helper.rb
225
226
  - lib/data_migrate/railtie.rb
226
227
  - 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
228
+ - lib/data_migrate/schema_migration.rb
229
+ - lib/data_migrate/status_service.rb
230
230
  - lib/data_migrate/tasks/data_migrate_tasks.rb
231
231
  - lib/data_migrate/version.rb
232
232
  - lib/generators/data_migrate.rb
@@ -239,18 +239,12 @@ files:
239
239
  - spec/data_migrate/data_schema_migration_spec.rb
240
240
  - spec/data_migrate/data_spec.rb
241
241
  - spec/data_migrate/database_tasks_spec.rb
242
- - spec/data_migrate/legacy_migrator_spec.rb
243
242
  - spec/data_migrate/migration.rb
244
243
  - spec/data_migrate/migration_context_spec.rb
245
244
  - spec/data_migrate/schema_dumper_spec.rb
246
245
  - spec/data_migrate/schema_migration_spec.rb
247
246
  - spec/data_migrate/status_service_spec.rb
248
247
  - 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
248
  - spec/db/data/20091231235959_some_name.rb
255
249
  - spec/db/data/20171231235959_super_update.rb
256
250
  - spec/db/data/20181128000207_excluded_file.rb.other_ext
@@ -258,10 +252,8 @@ files:
258
252
  - spec/db/data/partial_schema/test_data_schema.rb
259
253
  - spec/db/data/schema/data_schema.rb
260
254
  - 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
255
+ - spec/db/migrate/20131111111111_late_migration.rb
256
+ - spec/db/migrate/20202020202011_db_migration.rb
265
257
  - spec/generators/data_migration/data_migration_generator_spec.rb
266
258
  - spec/spec_helper.rb
267
259
  - tasks/.gitkeep
@@ -270,13 +262,7 @@ homepage: https://github.com/ilyakatz/data-migrate
270
262
  licenses:
271
263
  - MIT
272
264
  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
- ********************************************************************************
265
+ post_install_message:
280
266
  rdoc_options: []
281
267
  require_paths:
282
268
  - lib
@@ -291,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
291
277
  - !ruby/object:Gem::Version
292
278
  version: '0'
293
279
  requirements: []
294
- rubygems_version: 3.3.26
280
+ rubygems_version: 3.4.10
295
281
  signing_key:
296
282
  specification_version: 4
297
283
  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,22 +0,0 @@
1
- module DataMigrate
2
- class LegacyMigrator
3
- def initialize(migrations_paths = "db/data")
4
- @migrations_paths = migrations_paths || "db/data"
5
- end
6
-
7
- def migrate
8
- dates =
9
- DataMigrate::DataMigrator.migrations(@migrations_paths).collect(&:version)
10
- legacy = ActiveRecord::SchemaMigration.where(version: dates)
11
- legacy.each do |v|
12
- begin
13
- version = v.version
14
- puts "Creating #{version} in data schema"
15
- DataMigrate::DataSchemaMigration.create(version: version)
16
- rescue ActiveRecord::RecordNotUnique
17
- nil
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -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,50 +0,0 @@
1
- require "spec_helper"
2
-
3
- describe DataMigrate::LegacyMigrator do
4
- let(:context) {
5
- DataMigrate::MigrationContext.new("spec/db/data")
6
- }
7
-
8
- after do
9
- begin
10
- ActiveRecord::Migration.drop_table("data_migrations")
11
- ActiveRecord::Migration.drop_table("schema_migrations")
12
- rescue StandardError
13
- nil
14
- end
15
- end
16
-
17
- before do
18
- ActiveRecord::Base.establish_connection(db_config)
19
- ActiveRecord::SchemaMigration.create_table
20
- DataMigrate::DataSchemaMigration.create_table
21
- end
22
-
23
- let(:db_config) do
24
- {
25
- adapter: "sqlite3",
26
- database: "spec/db/test.db"
27
- }
28
- end
29
-
30
- it "migrate legacy migrations to be in correct table" do
31
- DataMigrate::DataSchemaMigration.create_table
32
- # simulate creation of legacy data migration when
33
- # it was recorded in schema table
34
- ActiveRecord::SchemaMigration.create(version: "20091231235959")
35
-
36
- # create one migration in correct place
37
- DataMigrate::DataSchemaMigration.create(version: "20171231235959")
38
-
39
- migrated = DataMigrate::DataMigrator .new(:up, []).load_migrated
40
- expect(migrated.count).to eq 1
41
-
42
- DataMigrate::LegacyMigrator.new("spec/db/data").migrate
43
-
44
- # after migacy migrator has been run, we should have records
45
- # of both migrations
46
- migrated = DataMigrate::DataMigrator .new(:up, []).load_migrated
47
- expect(migrated.count).to eq 2
48
- end
49
-
50
- 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 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
@@ -1,9 +0,0 @@
1
- class LateMigration < ActiveRecord::Migration[6.0]
2
- def up
3
- puts "Doing schema LateMigration"
4
- end
5
-
6
- def down
7
- puts "Undoing LateMigration"
8
- end
9
- end