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.
- checksums.yaml +4 -4
- data/Changelog.md +36 -0
- data/README.md +20 -13
- data/lib/data_migrate/data_migrator.rb +5 -1
- data/lib/data_migrate/data_schema.rb +6 -6
- data/lib/data_migrate/database_configurations_wrapper.rb +11 -0
- data/lib/data_migrate/database_tasks.rb +218 -58
- data/lib/data_migrate/rails_helper.rb +15 -3
- data/lib/data_migrate/tasks/data_migrate_tasks.rb +8 -6
- data/lib/data_migrate/version.rb +1 -1
- data/lib/data_migrate.rb +1 -0
- data/lib/generators/data_migration/data_migration_generator.rb +2 -1
- data/tasks/databases.rake +9 -46
- metadata +8 -52
- data/.github/workflows/build.yml +0 -34
- data/.github/workflows/gempush.yml +0 -28
- data/.gitignore +0 -12
- data/.hound.yml +0 -4
- data/.overcommit.yml +0 -21
- data/.rbenv-gemsets +0 -2
- data/.rspec +0 -3
- data/.rubocop.yml +0 -2
- data/.ruby-style.yml +0 -1061
- data/Appraisals +0 -11
- data/Gemfile +0 -4
- data/Gemfile.lock +0 -148
- data/Gemfile.rails6.1 +0 -11
- data/Rakefile +0 -2
- data/data_migrate.gemspec +0 -41
- data/gemfiles/rails_6.1.gemfile +0 -8
- data/gemfiles/rails_6.1.gemfile.lock +0 -227
- data/gemfiles/rails_7.0.gemfile +0 -8
- data/gemfiles/rails_7.0.gemfile.lock +0 -229
- data/gemfiles/rails_7.1.gemfile +0 -8
- data/gemfiles/rails_7.1.gemfile.lock +0 -262
- data/screenshot.png +0 -0
- data/spec/data_migrate/config_spec.rb +0 -69
- data/spec/data_migrate/data_migrator_spec.rb +0 -83
- data/spec/data_migrate/data_schema_migration_spec.rb +0 -33
- data/spec/data_migrate/data_spec.rb +0 -74
- data/spec/data_migrate/database_tasks_spec.rb +0 -105
- data/spec/data_migrate/migration.rb +0 -17
- data/spec/data_migrate/migration_context_spec.rb +0 -108
- data/spec/data_migrate/schema_dumper_spec.rb +0 -36
- data/spec/data_migrate/schema_migration_spec.rb +0 -104
- data/spec/data_migrate/status_service_spec.rb +0 -76
- data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +0 -129
- data/spec/db/data/20091231235959_some_name.rb +0 -9
- data/spec/db/data/20171231235959_super_update.rb +0 -9
- data/spec/db/data/20181128000207_excluded_file.rb.other_ext +0 -1
- data/spec/db/data/partial_schema/data_schema.rb +0 -1
- data/spec/db/data/partial_schema/test_data_schema.rb +0 -1
- data/spec/db/data/schema/data_schema.rb +0 -1
- data/spec/db/data/schema/test_data_schema.rb +0 -1
- data/spec/db/migrate/20131111111111_late_migration.rb +0 -9
- data/spec/db/migrate/20202020202011_db_migration.rb +0 -9
- data/spec/generators/data_migration/data_migration_generator_spec.rb +0 -101
- data/spec/spec_helper.rb +0 -28
- 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 => :
|
9
|
-
DataMigrate::
|
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:
|
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:
|
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:
|
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:
|
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.
|
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.
|
data/.github/workflows/build.yml
DELETED
@@ -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
data/.hound.yml
DELETED
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
data/.rspec
DELETED
data/.rubocop.yml
DELETED