data_migrate 9.2.0 → 11.2.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +36 -0
  3. data/README.md +20 -13
  4. data/lib/data_migrate/data_migrator.rb +5 -1
  5. data/lib/data_migrate/data_schema.rb +6 -6
  6. data/lib/data_migrate/database_configurations_wrapper.rb +11 -0
  7. data/lib/data_migrate/database_tasks.rb +218 -58
  8. data/lib/data_migrate/rails_helper.rb +15 -3
  9. data/lib/data_migrate/tasks/data_migrate_tasks.rb +8 -6
  10. data/lib/data_migrate/version.rb +1 -1
  11. data/lib/data_migrate.rb +1 -0
  12. data/lib/generators/data_migration/data_migration_generator.rb +2 -1
  13. data/tasks/databases.rake +9 -46
  14. metadata +8 -52
  15. data/.github/workflows/build.yml +0 -34
  16. data/.github/workflows/gempush.yml +0 -28
  17. data/.gitignore +0 -12
  18. data/.hound.yml +0 -4
  19. data/.overcommit.yml +0 -21
  20. data/.rbenv-gemsets +0 -2
  21. data/.rspec +0 -3
  22. data/.rubocop.yml +0 -2
  23. data/.ruby-style.yml +0 -1061
  24. data/Appraisals +0 -11
  25. data/Gemfile +0 -4
  26. data/Gemfile.lock +0 -148
  27. data/Gemfile.rails6.1 +0 -11
  28. data/Rakefile +0 -2
  29. data/data_migrate.gemspec +0 -41
  30. data/gemfiles/rails_6.1.gemfile +0 -8
  31. data/gemfiles/rails_6.1.gemfile.lock +0 -227
  32. data/gemfiles/rails_7.0.gemfile +0 -8
  33. data/gemfiles/rails_7.0.gemfile.lock +0 -229
  34. data/gemfiles/rails_7.1.gemfile +0 -8
  35. data/gemfiles/rails_7.1.gemfile.lock +0 -262
  36. data/screenshot.png +0 -0
  37. data/spec/data_migrate/config_spec.rb +0 -69
  38. data/spec/data_migrate/data_migrator_spec.rb +0 -83
  39. data/spec/data_migrate/data_schema_migration_spec.rb +0 -33
  40. data/spec/data_migrate/data_spec.rb +0 -74
  41. data/spec/data_migrate/database_tasks_spec.rb +0 -105
  42. data/spec/data_migrate/migration.rb +0 -17
  43. data/spec/data_migrate/migration_context_spec.rb +0 -108
  44. data/spec/data_migrate/schema_dumper_spec.rb +0 -36
  45. data/spec/data_migrate/schema_migration_spec.rb +0 -104
  46. data/spec/data_migrate/status_service_spec.rb +0 -76
  47. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +0 -129
  48. data/spec/db/data/20091231235959_some_name.rb +0 -9
  49. data/spec/db/data/20171231235959_super_update.rb +0 -9
  50. data/spec/db/data/20181128000207_excluded_file.rb.other_ext +0 -1
  51. data/spec/db/data/partial_schema/data_schema.rb +0 -1
  52. data/spec/db/data/partial_schema/test_data_schema.rb +0 -1
  53. data/spec/db/data/schema/data_schema.rb +0 -1
  54. data/spec/db/data/schema/test_data_schema.rb +0 -1
  55. data/spec/db/migrate/20131111111111_late_migration.rb +0 -9
  56. data/spec/db/migrate/20202020202011_db_migration.rb +0 -9
  57. data/spec/generators/data_migration/data_migration_generator_spec.rb +0 -101
  58. data/spec/spec_helper.rb +0 -28
  59. data/tasks/.gitkeep +0 -0
data/tasks/databases.rake CHANGED
@@ -5,52 +5,8 @@ require 'data_migrate/tasks/data_migrate_tasks'
5
5
  namespace :db do
6
6
  namespace :migrate do
7
7
  desc "Migrate the database data and schema (options: VERSION=x, VERBOSE=false)."
8
- task :with_data => :environment do
9
- DataMigrate::DataMigrator.create_data_schema_table
10
-
11
- ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
12
- target_version = ENV["VERSION"] ? ENV["VERSION"].to_i : nil
13
- migrations = []
14
-
15
- if target_version.nil?
16
- migrations = DataMigrate::DatabaseTasks.pending_migrations.map{ |m| m.merge(:direction =>:up) }
17
- else
18
- current_schema_version = ActiveRecord::Migrator.current_version
19
- schema_migrations = if target_version > current_schema_version
20
- DataMigrate::DatabaseTasks.pending_schema_migrations.keep_if{ |m| m[:version] <= target_version }.map{ |m| m.merge(:direction =>:up) }
21
- elsif target_version < current_schema_version
22
- DataMigrate::DatabaseTasks.past_migrations.keep_if{ |m| m[:version] > target_version }.map{ |m| m.merge(:direction =>:down) }
23
- else # ==
24
- []
25
- end
26
-
27
- current_data_version = DataMigrate::DataMigrator.current_version
28
- data_migrations = if target_version > current_data_version
29
- DataMigrate::DatabaseTasks.pending_data_migrations.keep_if{ |m| m[:version] <= target_version }.map{ |m| m.merge(:direction =>:up) }
30
- elsif target_version < current_data_version
31
- DataMigrate::DatabaseTasks.past_migrations.keep_if{ |m| m[:version] > target_version }.map{ |m| m.merge(:direction =>:down) }
32
- else # ==
33
- []
34
- end
35
- migrations = if schema_migrations.empty?
36
- data_migrations
37
- elsif data_migrations.empty?
38
- schema_migrations
39
- elsif target_version > current_data_version && target_version > current_schema_version
40
- DataMigrate::DatabaseTasks.sort_migrations data_migrations, schema_migrations
41
- elsif target_version < current_data_version && target_version < current_schema_version
42
- DataMigrate::DatabaseTasks.sort_migrations(data_migrations, schema_migrations).reverse
43
- elsif target_version > current_data_version && target_version < current_schema_version
44
- schema_migrations + data_migrations
45
- elsif target_version < current_data_version && target_version > current_schema_version
46
- schema_migrations + data_migrations
47
- end
48
- end
49
-
50
- migrations.each do |migration|
51
- DataMigrate::DatabaseTasks.run_migration(migration, migration[:direction])
52
- end
53
-
8
+ task :with_data => :load_config do
9
+ DataMigrate::DatabaseTasks.migrate_with_data
54
10
  Rake::Task["db:_dump"].invoke
55
11
  Rake::Task["data:dump"].invoke
56
12
  end
@@ -190,6 +146,13 @@ namespace :db do
190
146
  end
191
147
  end
192
148
  end
149
+
150
+ namespace :prepare do
151
+ desc "Runs setup if database does not exist, or runs data and schema migrations if it does"
152
+ task with_data: :environment do
153
+ DataMigrate::DatabaseTasks.prepare_all_with_data
154
+ end
155
+ end
193
156
  end
194
157
 
195
158
  namespace :data do
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.2.0
4
+ version: 11.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-10-05 00:00:00.000000000 Z
13
+ date: 2024-11-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -128,16 +128,16 @@ dependencies:
128
128
  name: sqlite3
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
- - - "~>"
131
+ - - ">="
132
132
  - !ruby/object:Gem::Version
133
- version: 1.3.6
133
+ version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
- - - "~>"
138
+ - - ">="
139
139
  - !ruby/object:Gem::Version
140
- version: 1.3.6
140
+ version: '0'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: timecop
143
143
  requirement: !ruby/object:Gem::Requirement
@@ -189,30 +189,9 @@ executables: []
189
189
  extensions: []
190
190
  extra_rdoc_files: []
191
191
  files:
192
- - ".github/workflows/build.yml"
193
- - ".github/workflows/gempush.yml"
194
- - ".gitignore"
195
- - ".hound.yml"
196
- - ".overcommit.yml"
197
- - ".rbenv-gemsets"
198
- - ".rspec"
199
- - ".rubocop.yml"
200
- - ".ruby-style.yml"
201
- - Appraisals
202
192
  - Changelog.md
203
- - Gemfile
204
- - Gemfile.lock
205
- - Gemfile.rails6.1
206
193
  - LICENSE
207
194
  - README.md
208
- - Rakefile
209
- - data_migrate.gemspec
210
- - gemfiles/rails_6.1.gemfile
211
- - gemfiles/rails_6.1.gemfile.lock
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
216
195
  - lib/capistrano/data_migrate.rb
217
196
  - lib/capistrano/data_migrate/migrate.rb
218
197
  - lib/data_migrate.rb
@@ -220,6 +199,7 @@ files:
220
199
  - lib/data_migrate/data_migrator.rb
221
200
  - lib/data_migrate/data_schema.rb
222
201
  - lib/data_migrate/data_schema_migration.rb
202
+ - lib/data_migrate/database_configurations_wrapper.rb
223
203
  - lib/data_migrate/database_tasks.rb
224
204
  - lib/data_migrate/migration_context.rb
225
205
  - lib/data_migrate/rails_helper.rb
@@ -233,30 +213,6 @@ files:
233
213
  - lib/generators/data_migration/data_migration_generator.rb
234
214
  - lib/generators/data_migration/templates/data_migration.rb
235
215
  - lib/generators/data_migration/templates/migration.rb
236
- - screenshot.png
237
- - spec/data_migrate/config_spec.rb
238
- - spec/data_migrate/data_migrator_spec.rb
239
- - spec/data_migrate/data_schema_migration_spec.rb
240
- - spec/data_migrate/data_spec.rb
241
- - spec/data_migrate/database_tasks_spec.rb
242
- - spec/data_migrate/migration.rb
243
- - spec/data_migrate/migration_context_spec.rb
244
- - spec/data_migrate/schema_dumper_spec.rb
245
- - spec/data_migrate/schema_migration_spec.rb
246
- - spec/data_migrate/status_service_spec.rb
247
- - spec/data_migrate/tasks/data_migrate_tasks_spec.rb
248
- - spec/db/data/20091231235959_some_name.rb
249
- - spec/db/data/20171231235959_super_update.rb
250
- - spec/db/data/20181128000207_excluded_file.rb.other_ext
251
- - spec/db/data/partial_schema/data_schema.rb
252
- - spec/db/data/partial_schema/test_data_schema.rb
253
- - spec/db/data/schema/data_schema.rb
254
- - spec/db/data/schema/test_data_schema.rb
255
- - spec/db/migrate/20131111111111_late_migration.rb
256
- - spec/db/migrate/20202020202011_db_migration.rb
257
- - spec/generators/data_migration/data_migration_generator_spec.rb
258
- - spec/spec_helper.rb
259
- - tasks/.gitkeep
260
216
  - tasks/databases.rake
261
217
  homepage: https://github.com/ilyakatz/data-migrate
262
218
  licenses:
@@ -277,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
277
233
  - !ruby/object:Gem::Version
278
234
  version: '0'
279
235
  requirements: []
280
- rubygems_version: 3.4.10
236
+ rubygems_version: 3.4.19
281
237
  signing_key:
282
238
  specification_version: 4
283
239
  summary: Rake tasks to migrate data alongside schema changes.
@@ -1,34 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- - push
5
- - pull_request
6
-
7
- jobs:
8
- test:
9
- strategy:
10
- fail-fast: false
11
- matrix:
12
- os: [ "ubuntu-20.04" ]
13
- ruby:
14
- - '3.0'
15
- - '3.1'
16
- - '3.2'
17
- gemfile:
18
- - gemfiles/rails_6.1.gemfile
19
- - gemfiles/rails_7.0.gemfile
20
- - gemfiles/rails_7.1.gemfile
21
- runs-on: ubuntu-latest
22
- env:
23
- BUNDLE_GEMFILE: ${{ matrix.gemfile }}
24
- RAILS_ENV: test
25
- steps:
26
- - name: Checkout code
27
- uses: actions/checkout@v3
28
- - name: Set up Ruby
29
- uses: ruby/setup-ruby@v1
30
- with:
31
- ruby-version: ${{ matrix.ruby }}
32
- bundler-cache: true
33
- - name: Run tests
34
- run: bundle exec rspec
@@ -1,28 +0,0 @@
1
- name: Release Gem
2
-
3
- on:
4
- release:
5
- types: [released]
6
-
7
- jobs:
8
- build:
9
- name: Build + Publish
10
- runs-on: ubuntu-latest
11
-
12
- steps:
13
- - uses: actions/checkout@master
14
- - name: Set up Ruby 3.2
15
- uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: '3.2'
18
-
19
- - name: Publish to RubyGems
20
- run: |
21
- mkdir -p $HOME/.gem
22
- touch $HOME/.gem/credentials
23
- chmod 0600 $HOME/.gem/credentials
24
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
25
- gem build *.gemspec
26
- gem push *.gem
27
- env:
28
- GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
data/.gitignore DELETED
@@ -1,12 +0,0 @@
1
- /.rvmrc
2
- *.gem
3
- gemfiles/.bundle
4
- spec/db/test.db
5
- spec/db/other_test.db
6
- spec/db/data_schema.rb
7
- .vscode/
8
- .DS_Store
9
- .ruby-gemset
10
- .ruby-version
11
- .idea/
12
- vendor/
data/.hound.yml DELETED
@@ -1,4 +0,0 @@
1
- fail_on_violations: true
2
-
3
- ruby:
4
- config_file: .rubocop.yml
data/.overcommit.yml DELETED
@@ -1,21 +0,0 @@
1
- # Use this file to configure the Overcommit hooks you wish to use. This will
2
- # extend the default configuration defined in:
3
- # https://github.com/brigade/overcommit/blob/master/config/default.yml
4
- #
5
- # At the topmost level of this YAML file is a key representing type of hook
6
- # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
- # customize each hook, such as whether to only run it on certain files (via
8
- # `include`), whether to only display output if it fails (via `quiet`), etc.
9
- #
10
- # For a complete list of hooks, see:
11
- # https://github.com/brigade/overcommit/tree/master/lib/overcommit/hook
12
- #
13
- # For a complete list of options that you can use to customize hooks, see:
14
- # https://github.com/brigade/overcommit#configuration
15
- #
16
- # Uncomment the following lines to make the configuration take effect.
17
-
18
- PreCommit:
19
- RuboCop:
20
- enabled: true
21
- on_warn: fail # Treat all warnings as failures
data/.rbenv-gemsets DELETED
@@ -1,2 +0,0 @@
1
- data-migrate
2
- -global
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --format d
3
-
data/.rubocop.yml DELETED
@@ -1,2 +0,0 @@
1
- # Use same configration as used by HoundCI
2
- inherit_from: .ruby-style.yml