data_migrate 9.1.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +40 -0
  3. data/README.md +22 -15
  4. data/lib/data_migrate/data_migrator.rb +15 -23
  5. data/lib/data_migrate/data_schema.rb +7 -7
  6. data/lib/data_migrate/data_schema_migration.rb +24 -7
  7. data/lib/data_migrate/database_configurations_wrapper.rb +11 -0
  8. data/lib/data_migrate/database_tasks.rb +224 -61
  9. data/lib/data_migrate/migration_context.rb +11 -8
  10. data/lib/data_migrate/rails_helper.rb +91 -0
  11. data/lib/data_migrate/schema_dumper.rb +1 -1
  12. data/lib/data_migrate/schema_migration.rb +5 -4
  13. data/lib/data_migrate/status_service.rb +3 -3
  14. data/lib/data_migrate/tasks/data_migrate_tasks.rb +11 -9
  15. data/lib/data_migrate/version.rb +1 -1
  16. data/lib/data_migrate.rb +2 -1
  17. data/lib/generators/data_migration/data_migration_generator.rb +2 -1
  18. data/tasks/databases.rake +9 -46
  19. metadata +13 -54
  20. data/.github/workflows/build.yml +0 -34
  21. data/.github/workflows/gempush.yml +0 -28
  22. data/.gitignore +0 -13
  23. data/.hound.yml +0 -4
  24. data/.overcommit.yml +0 -21
  25. data/.rbenv-gemsets +0 -2
  26. data/.rspec +0 -3
  27. data/.rubocop.yml +0 -2
  28. data/.ruby-style.yml +0 -1061
  29. data/Appraisals +0 -11
  30. data/Gemfile +0 -4
  31. data/Gemfile.rails6.1 +0 -11
  32. data/Rakefile +0 -2
  33. data/data_migrate.gemspec +0 -41
  34. data/gemfiles/rails_6.0.gemfile +0 -8
  35. data/gemfiles/rails_6.1.gemfile +0 -8
  36. data/gemfiles/rails_7.0.gemfile +0 -8
  37. data/lib/data_migrate/legacy_migrator.rb +0 -22
  38. data/screenshot.png +0 -0
  39. data/spec/data_migrate/config_spec.rb +0 -69
  40. data/spec/data_migrate/data_migrator_spec.rb +0 -80
  41. data/spec/data_migrate/data_schema_migration_spec.rb +0 -16
  42. data/spec/data_migrate/data_spec.rb +0 -74
  43. data/spec/data_migrate/database_tasks_spec.rb +0 -90
  44. data/spec/data_migrate/legacy_migrator_spec.rb +0 -38
  45. data/spec/data_migrate/migration.rb +0 -17
  46. data/spec/data_migrate/migration_context_spec.rb +0 -101
  47. data/spec/data_migrate/schema_dumper_spec.rb +0 -33
  48. data/spec/data_migrate/schema_migration_spec.rb +0 -97
  49. data/spec/data_migrate/status_service_spec.rb +0 -73
  50. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +0 -129
  51. data/spec/db/data/20091231235959_some_name.rb +0 -9
  52. data/spec/db/data/20171231235959_super_update.rb +0 -9
  53. data/spec/db/data/20181128000207_excluded_file.rb.other_ext +0 -1
  54. data/spec/db/data/partial_schema/data_schema.rb +0 -1
  55. data/spec/db/data/partial_schema/test_data_schema.rb +0 -1
  56. data/spec/db/data/schema/data_schema.rb +0 -1
  57. data/spec/db/data/schema/test_data_schema.rb +0 -1
  58. data/spec/db/migrate/20131111111111_late_migration.rb +0 -9
  59. data/spec/db/migrate/20202020202011_db_migration.rb +0 -9
  60. data/spec/generators/data_migration/data_migration_generator_spec.rb +0 -101
  61. data/spec/spec_helper.rb +0 -28
  62. data/tasks/.gitkeep +0 -0
@@ -11,7 +11,8 @@ module DataMigrate
11
11
  migrations
12
12
  end
13
13
 
14
- DataMigrator.new(:up, selected_migrations, target_version).migrate
14
+ data_migrator = DataMigrate::RailsHelper.data_migrator(:up, selected_migrations, DataMigrate::RailsHelper.schema_migration, DataMigrate::RailsHelper.internal_metadata, target_version)
15
+ data_migrator.migrate
15
16
  end
16
17
 
17
18
  def down(target_version = nil)
@@ -22,11 +23,13 @@ module DataMigrate
22
23
  migrations
23
24
  end
24
25
 
25
- DataMigrator.new(:down, selected_migrations, target_version).migrate
26
+ data_migrator = DataMigrate::RailsHelper.data_migrator(:down, selected_migrations, DataMigrate::RailsHelper.schema_migration, DataMigrate::RailsHelper.internal_metadata, target_version)
27
+ data_migrator.migrate
26
28
  end
27
29
 
28
30
  def run(direction, target_version)
29
- DataMigrator.new(direction, migrations, target_version).run
31
+ data_migrator = DataMigrate::RailsHelper.data_migrator(direction, migrations, DataMigrate::RailsHelper.schema_migration, DataMigrate::RailsHelper.internal_metadata, target_version)
32
+ data_migrator.run
30
33
  end
31
34
 
32
35
  def current_version
@@ -40,12 +43,12 @@ module DataMigrate
40
43
  end
41
44
 
42
45
  def migrations_status
43
- db_list = DataSchemaMigration.normalized_versions
46
+ db_list = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
44
47
 
45
48
  file_list = migration_files.map do |file|
46
49
  version, name, scope = parse_migration_filename(file)
47
50
  raise ActiveRecord::IllegalMigrationNameError.new(file) unless version
48
- version = ActiveRecord::SchemaMigration.normalize_migration_number(version)
51
+ version = DataMigrate::RailsHelper.schema_migration.normalize_migration_number(version)
49
52
  status = db_list.delete(version) ? "up" : "down"
50
53
  [status, version, (name + scope).humanize]
51
54
  end.compact
@@ -60,15 +63,15 @@ module DataMigrate
60
63
  private
61
64
 
62
65
  def get_all_versions
63
- if DataMigrate::DataSchemaMigration.table_exists?
64
- DataSchemaMigration.normalized_versions.map(&:to_i)
66
+ if DataMigrate::RailsHelper.data_schema_migration.table_exists?
67
+ DataMigrate::RailsHelper.data_schema_migration.normalized_versions.map(&:to_i)
65
68
  else
66
69
  []
67
70
  end
68
71
  end
69
72
 
70
73
  def move(direction, steps)
71
- migrator = DataMigrator.new(direction, migrations)
74
+ migrator = DataMigrate::RailsHelper.data_migrator(direction, migrations)
72
75
 
73
76
  if current_version != 0 && !migrator.current_migration
74
77
  raise ActiveRecord::UnknownMigrationVersionError.new(current_version)
@@ -0,0 +1,91 @@
1
+ module DataMigrate
2
+ class RailsHelper
3
+ class << self
4
+ def rails_version_equal_to_or_higher_than_7_2
5
+ return @equal_to_or_higher_than_7_2 if defined?(@equal_to_or_higher_than_7_2)
6
+
7
+ @equal_to_or_higher_than_7_2 = Gem::Dependency.new("railties", ">= 7.2.0.alpha").match?("railties", Gem.loaded_specs["railties"].version, true)
8
+ end
9
+
10
+ def rails_version_equal_to_or_higher_than_7_1
11
+ return @equal_to_or_higher_than_7_1 if defined?(@equal_to_or_higher_than_7_1)
12
+
13
+ @equal_to_or_higher_than_7_1 = Gem::Dependency.new("railties", ">= 7.1.0.alpha").match?("railties", Gem.loaded_specs["railties"].version, true)
14
+ end
15
+
16
+ def rails_version_equal_to_or_higher_than_7_0
17
+ return @rails_version_equal_to_or_higher_than_7_0 if defined?(@rails_version_equal_to_or_higher_than_7_0)
18
+
19
+ @rails_version_equal_to_or_higher_than_7_0 = Gem::Dependency.new("railties", ">= 7.0").match?("railties", Gem.loaded_specs["railties"].version, true)
20
+ end
21
+
22
+ def internal_metadata
23
+ if rails_version_equal_to_or_higher_than_7_2
24
+ ActiveRecord::Base.connection_pool.internal_metadata
25
+ elsif rails_version_equal_to_or_higher_than_7_1
26
+ ActiveRecord::Base.connection.internal_metadata
27
+ else
28
+ ActiveRecord::InternalMetadata
29
+ end
30
+ end
31
+
32
+ def schema_migration
33
+ if rails_version_equal_to_or_higher_than_7_2
34
+ ActiveRecord::Base.connection_pool.schema_migration
35
+ elsif rails_version_equal_to_or_higher_than_7_1
36
+ ActiveRecord::Base.connection.schema_migration
37
+ else
38
+ ActiveRecord::SchemaMigration
39
+ end
40
+ end
41
+
42
+ def schema_migration_versions
43
+ if rails_version_equal_to_or_higher_than_7_1
44
+ schema_migration.versions
45
+ else
46
+ schema_migration.all.pluck(:version)
47
+ end
48
+ end
49
+
50
+ def schema_create_version(version)
51
+ if rails_version_equal_to_or_higher_than_7_1
52
+ schema_migration.create_version(version)
53
+ else
54
+ schema_migration.create(version: version)
55
+ end
56
+ end
57
+
58
+ def data_schema_delete_version(version)
59
+ if rails_version_equal_to_or_higher_than_7_1
60
+ data_schema_migration.delete_version(version)
61
+ else
62
+ data_schema_migration.where(version: version.to_s).delete_all
63
+ end
64
+ end
65
+
66
+ def data_schema_migration
67
+ if rails_version_equal_to_or_higher_than_7_2
68
+ DataMigrate::DataSchemaMigration.new(ActiveRecord::Tasks::DatabaseTasks.migration_connection_pool)
69
+ elsif rails_version_equal_to_or_higher_than_7_1
70
+ DataMigrate::DataSchemaMigration.new(ActiveRecord::Tasks::DatabaseTasks.migration_connection)
71
+ else
72
+ DataMigrate::DataSchemaMigration
73
+ end
74
+ end
75
+
76
+ def data_migrator(
77
+ direction,
78
+ migrations,
79
+ schema_migration = DataMigrate::RailsHelper.schema_migration,
80
+ internal_metadata = DataMigrate::RailsHelper.internal_metadata,
81
+ target_version = nil
82
+ )
83
+ if rails_version_equal_to_or_higher_than_7_1
84
+ DataMigrate::DataMigrator.new(direction, migrations, schema_migration, internal_metadata, target_version)
85
+ else
86
+ DataMigrate::DataMigrator.new(direction, migrations, schema_migration, target_version)
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -26,7 +26,7 @@ module DataMigrate
26
26
 
27
27
  def initialize(connection)
28
28
  @connection = connection
29
- all_versions = DataSchemaMigration.normalized_versions
29
+ all_versions = DataMigrate::RailsHelper.data_schema_migration.normalized_versions
30
30
 
31
31
  @version = begin
32
32
  all_versions.max
@@ -7,14 +7,14 @@ module DataMigrate
7
7
  def self.pending_schema_migrations
8
8
  all_migrations = DataMigrate::MigrationContext.new(migrations_paths).migrations
9
9
  sort_migrations(
10
- ActiveRecord::Migrator.new(:up, all_migrations, ActiveRecord::Base.connection.schema_migration).
10
+ ActiveRecord::Migrator.new(:up, all_migrations, DataMigrate::RailsHelper.schema_migration, DataMigrate::RailsHelper.internal_metadata).
11
11
  pending_migrations.
12
12
  map {|m| { version: m.version, kind: :schema }}
13
13
  )
14
14
  end
15
15
 
16
16
  def self.run(direction, migration_paths, version)
17
- ActiveRecord::MigrationContext.new(migration_paths, ActiveRecord::Base.connection.schema_migration).run(direction, version)
17
+ ActiveRecord::MigrationContext.new(migration_paths, DataMigrate::RailsHelper.schema_migration).run(direction, version)
18
18
  end
19
19
 
20
20
  def self.sort_migrations(set1, set2 = nil)
@@ -24,9 +24,10 @@ module DataMigrate
24
24
 
25
25
  def self.migrations_paths
26
26
  spec_name = DataMigrate.config.spec_name
27
- if spec_name && Gem::Dependency.new("railties", "~> 7.0").match?("railties", Gem.loaded_specs["railties"].version)
27
+ # The positional argument true is to include pre-release versions, such as 7.1.0.alpha
28
+ if spec_name && Gem::Dependency.new("railties", ">= 7.0").match?("railties", Gem.loaded_specs["railties"].version, true)
28
29
  ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, name: spec_name).migrations_paths
29
- elsif spec_name && Gem::Dependency.new("railties", "~> 6.0").match?("railties", Gem.loaded_specs["railties"].version)
30
+ elsif spec_name && Gem::Dependency.new("railties", "~> 6.1").match?("railties", Gem.loaded_specs["railties"].version)
30
31
  ActiveRecord::Base.configurations.configs_for(env_name: Rails.env, spec_name: spec_name).migrations_paths
31
32
  else
32
33
  Rails.application.config.paths["db/migrate"].to_a
@@ -24,11 +24,11 @@ module DataMigrate
24
24
  private
25
25
 
26
26
  def table_name
27
- DataMigrate::DataSchemaMigration.table_name
27
+ DataMigrate::RailsHelper.data_schema_migration.table_name
28
28
  end
29
29
 
30
30
  def output(stream)
31
- unless DataMigrate::DataSchemaMigration.table_exists?
31
+ unless DataMigrate::RailsHelper.data_schema_migration.table_exists?
32
32
  stream.puts "Data migrations table does not exist yet."
33
33
  return
34
34
  end
@@ -46,7 +46,7 @@ module DataMigrate
46
46
  def database_name
47
47
  if Gem::Dependency.new("railties", "~> 7.0").match?("railties", Gem.loaded_specs["railties"].version)
48
48
  ActiveRecord::Base.connection_db_config.configuration_hash[:database]
49
- elsif Gem::Dependency.new("railties", "~> 6.0").match?("railties", Gem.loaded_specs["railties"].version)
49
+ elsif Gem::Dependency.new("railties", "~> 6.1").match?("railties", Gem.loaded_specs["railties"].version)
50
50
  ActiveRecord::Base.connection_config[:database]
51
51
  end
52
52
  end
@@ -6,7 +6,7 @@ module DataMigrate
6
6
  extend self
7
7
 
8
8
  def migrations_paths
9
- @migrations_paths ||= DataMigrate.config.data_migrations_path
9
+ @migrations_paths ||= Array.wrap(DataMigrate.config.data_migrations_path)
10
10
  end
11
11
 
12
12
  def dump
@@ -50,16 +50,18 @@ module DataMigrate
50
50
 
51
51
  def status_with_schema
52
52
  db_list_data = ActiveRecord::Base.connection.select_values(
53
- "SELECT version FROM #{DataMigrate::DataSchemaMigration.table_name}"
53
+ "SELECT version FROM #{DataMigrate::RailsHelper.data_schema_migration.table_name}"
54
54
  )
55
- db_list_schema = ActiveRecord::SchemaMigration.all.pluck(:version)
55
+ db_list_schema = DataMigrate::RailsHelper.schema_migration_versions
56
56
  file_list = []
57
57
 
58
- Dir.foreach(File.join(Rails.root, migrations_paths)) do |file|
59
- # only files matching "20091231235959_some_name.rb" pattern
60
- if match_data = /(\d{14})_(.+)\.rb/.match(file)
61
- status = db_list_data.delete(match_data[1]) ? 'up' : 'down'
62
- file_list << [status, match_data[1], match_data[2], 'data']
58
+ migrations_paths.each do |path|
59
+ Dir.foreach(File.join(Rails.root, path)) do |file|
60
+ # only files matching "20091231235959_some_name.rb" pattern
61
+ if match_data = /(\d{14})_(.+)\.rb/.match(file)
62
+ status = db_list_data.delete(match_data[1]) ? 'up' : 'down'
63
+ file_list << [status, match_data[1], match_data[2], 'data']
64
+ end
63
65
  end
64
66
  end
65
67
 
@@ -96,7 +98,7 @@ module DataMigrate
96
98
  def database_name
97
99
  if Gem::Dependency.new("railties", "~> 7.0").match?("railties", Gem.loaded_specs["railties"].version)
98
100
  ActiveRecord::Base.connection_db_config.database
99
- elsif Gem::Dependency.new("railties", "~> 6.0").match?("railties", Gem.loaded_specs["railties"].version)
101
+ elsif Gem::Dependency.new("railties", "~> 6.1").match?("railties", Gem.loaded_specs["railties"].version)
100
102
  ActiveRecord::Base.connection_config[:database]
101
103
  end
102
104
  end
@@ -1,3 +1,3 @@
1
1
  module DataMigrate
2
- VERSION = "9.1.0".freeze
2
+ VERSION = "11.2.0".freeze
3
3
  end
data/lib/data_migrate.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require File.join(File.dirname(__FILE__), "data_migrate", "rails_helper")
3
4
  require File.join(File.dirname(__FILE__), "data_migrate", "data_migrator")
4
5
  require File.join(File.dirname(__FILE__), "data_migrate", "data_schema_migration")
5
6
  require File.join(File.dirname(__FILE__), "data_migrate", "data_schema")
@@ -9,9 +10,9 @@ require File.join(File.dirname(__FILE__), "data_migrate", "status_service")
9
10
  require File.join(File.dirname(__FILE__), "data_migrate", "migration_context")
10
11
  require File.join(File.dirname(__FILE__), "data_migrate", "railtie")
11
12
  require File.join(File.dirname(__FILE__), "data_migrate", "tasks/data_migrate_tasks")
12
- require File.join(File.dirname(__FILE__), "data_migrate", "legacy_migrator")
13
13
  require File.join(File.dirname(__FILE__), "data_migrate", "config")
14
14
  require File.join(File.dirname(__FILE__), "data_migrate", "schema_migration")
15
+ require File.join(File.dirname(__FILE__), "data_migrate", "database_configurations_wrapper")
15
16
 
16
17
  module DataMigrate
17
18
  def self.root
@@ -38,8 +38,9 @@ module DataMigrate
38
38
  File.join(data_migrations_path, "#{file_name}.rb")
39
39
  end
40
40
 
41
+ # Use the first path in the data_migrations_path as the target directory
41
42
  def data_migrations_path
42
- DataMigrate.config.data_migrations_path
43
+ Array.wrap(DataMigrate.config.data_migrations_path).first
43
44
  end
44
45
  end
45
46
  end
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.1.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-06-29 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
@@ -18,28 +18,28 @@ dependencies:
18
18
  requirements:
19
19
  - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '6.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: '6.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: '6.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: '6.0'
42
+ version: '6.1'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: appraisal
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -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,26 +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.rails6.1
205
193
  - LICENSE
206
194
  - README.md
207
- - Rakefile
208
- - data_migrate.gemspec
209
- - gemfiles/rails_6.0.gemfile
210
- - gemfiles/rails_6.1.gemfile
211
- - gemfiles/rails_7.0.gemfile
212
195
  - lib/capistrano/data_migrate.rb
213
196
  - lib/capistrano/data_migrate/migrate.rb
214
197
  - lib/data_migrate.rb
@@ -216,9 +199,10 @@ files:
216
199
  - lib/data_migrate/data_migrator.rb
217
200
  - lib/data_migrate/data_schema.rb
218
201
  - lib/data_migrate/data_schema_migration.rb
202
+ - lib/data_migrate/database_configurations_wrapper.rb
219
203
  - lib/data_migrate/database_tasks.rb
220
- - lib/data_migrate/legacy_migrator.rb
221
204
  - lib/data_migrate/migration_context.rb
205
+ - lib/data_migrate/rails_helper.rb
222
206
  - lib/data_migrate/railtie.rb
223
207
  - lib/data_migrate/schema_dumper.rb
224
208
  - lib/data_migrate/schema_migration.rb
@@ -229,31 +213,6 @@ files:
229
213
  - lib/generators/data_migration/data_migration_generator.rb
230
214
  - lib/generators/data_migration/templates/data_migration.rb
231
215
  - lib/generators/data_migration/templates/migration.rb
232
- - screenshot.png
233
- - spec/data_migrate/config_spec.rb
234
- - spec/data_migrate/data_migrator_spec.rb
235
- - spec/data_migrate/data_schema_migration_spec.rb
236
- - spec/data_migrate/data_spec.rb
237
- - spec/data_migrate/database_tasks_spec.rb
238
- - spec/data_migrate/legacy_migrator_spec.rb
239
- - spec/data_migrate/migration.rb
240
- - spec/data_migrate/migration_context_spec.rb
241
- - spec/data_migrate/schema_dumper_spec.rb
242
- - spec/data_migrate/schema_migration_spec.rb
243
- - spec/data_migrate/status_service_spec.rb
244
- - spec/data_migrate/tasks/data_migrate_tasks_spec.rb
245
- - spec/db/data/20091231235959_some_name.rb
246
- - spec/db/data/20171231235959_super_update.rb
247
- - spec/db/data/20181128000207_excluded_file.rb.other_ext
248
- - spec/db/data/partial_schema/data_schema.rb
249
- - spec/db/data/partial_schema/test_data_schema.rb
250
- - spec/db/data/schema/data_schema.rb
251
- - spec/db/data/schema/test_data_schema.rb
252
- - spec/db/migrate/20131111111111_late_migration.rb
253
- - spec/db/migrate/20202020202011_db_migration.rb
254
- - spec/generators/data_migration/data_migration_generator_spec.rb
255
- - spec/spec_helper.rb
256
- - tasks/.gitkeep
257
216
  - tasks/databases.rake
258
217
  homepage: https://github.com/ilyakatz/data-migrate
259
218
  licenses:
@@ -274,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
274
233
  - !ruby/object:Gem::Version
275
234
  version: '0'
276
235
  requirements: []
277
- rubygems_version: 3.4.10
236
+ rubygems_version: 3.4.19
278
237
  signing_key:
279
238
  specification_version: 4
280
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.0.gemfile
19
- - gemfiles/rails_6.1.gemfile
20
- - gemfiles/rails_7.0.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,13 +0,0 @@
1
- /.rvmrc
2
- *.gem
3
- *.lock
4
- gemfiles/.bundle
5
- spec/db/test.db
6
- spec/db/other_test.db
7
- spec/db/data_schema.rb
8
- .vscode/
9
- .DS_Store
10
- .ruby-gemset
11
- .ruby-version
12
- .idea/
13
- 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