data_migrate 9.4.0 → 9.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b1c79f9a3a6b30aeb19f85dd46e0c7d29885f3552787924f27eeb80f1738e95
4
- data.tar.gz: 56ff3a64d6cde029b8a6e9f57c82ebf15ad86aa0140520d5a08c67a8a30e9869
3
+ metadata.gz: b061a1b90d162a48df5225719ec96da94aaa77d0580d952a1ff0f4cb895e452e
4
+ data.tar.gz: bc78e03d816377c6a784b8102ce9f6c9504ee4650839436a92b1a949bce6a45d
5
5
  SHA512:
6
- metadata.gz: 6b8d1bb7fd343e44f0cdf623fda3e52875e4efee1327bc4fbf2e3700b1071a96e3b50bb88a63ef4f94c98fcdb068c81f47a4a94d3ee80e91f4d9b47d84893234
7
- data.tar.gz: bbbcc92d53620c487cdce34a99dd5c41ddb156fa6a8a1a1b8304f1750af2c696df2c1f12079d9ec320b7f1a13497ab35ea20d19a0e1c5f33b3e7a7b2804a8ca0
6
+ metadata.gz: 5c612eefd1985b3935c79c87039f1f67db81088a1984fb4e90d15c361d9c0fd90b9acefaeb131ec4b77f22a56f6524a99444e663b5e2e2a820115864b09471ed
7
+ data.tar.gz: b2ce56c6fd8510adb0eb465fc765df93fdce42f6d7f81e809276bbaf29f7e1891dd7638191e395af0afb774f1ced8fc33387a9619b09edf24cde824b03aa00a6
data/Changelog.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.4.2
4
+ - Fix db:prepare:with_data task
5
+
6
+ ## 9.4.1
7
+ - Add db:prepare task
8
+
3
9
  ## 9.4.0
4
10
  - Reset model schema cache before each data migration https://github.com/ilyakatz/data-migrate/pull/307
5
11
  - Run load_config rake task before db:migrate:with_data https://github.com/ilyakatz/data-migrate/pull/308
data/Gemfile.lock CHANGED
@@ -1,16 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- data_migrate (9.4.0)
4
+ data_migrate (9.4.2)
5
5
  activerecord (>= 6.1)
6
6
  railties (>= 6.1)
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
- actionpack (7.1.3.2)
12
- actionview (= 7.1.3.2)
13
- activesupport (= 7.1.3.2)
11
+ actionpack (7.1.3.4)
12
+ actionview (= 7.1.3.4)
13
+ activesupport (= 7.1.3.4)
14
14
  nokogiri (>= 1.8.5)
15
15
  racc
16
16
  rack (>= 2.2.4)
@@ -18,19 +18,19 @@ GEM
18
18
  rack-test (>= 0.6.3)
19
19
  rails-dom-testing (~> 2.2)
20
20
  rails-html-sanitizer (~> 1.6)
21
- actionview (7.1.3.2)
22
- activesupport (= 7.1.3.2)
21
+ actionview (7.1.3.4)
22
+ activesupport (= 7.1.3.4)
23
23
  builder (~> 3.1)
24
24
  erubi (~> 1.11)
25
25
  rails-dom-testing (~> 2.2)
26
26
  rails-html-sanitizer (~> 1.6)
27
- activemodel (7.1.3.2)
28
- activesupport (= 7.1.3.2)
29
- activerecord (7.1.3.2)
30
- activemodel (= 7.1.3.2)
31
- activesupport (= 7.1.3.2)
27
+ activemodel (7.1.3.4)
28
+ activesupport (= 7.1.3.4)
29
+ activerecord (7.1.3.4)
30
+ activemodel (= 7.1.3.4)
31
+ activesupport (= 7.1.3.4)
32
32
  timeout (>= 0.4.0)
33
- activesupport (7.1.3.2)
33
+ activesupport (7.1.3.4)
34
34
  base64
35
35
  bigdecimal
36
36
  concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -46,18 +46,17 @@ GEM
46
46
  thor (>= 0.14.0)
47
47
  ast (2.4.2)
48
48
  base64 (0.2.0)
49
- bigdecimal (3.1.6)
49
+ bigdecimal (3.1.8)
50
50
  builder (3.2.4)
51
51
  childprocess (5.0.0)
52
52
  coderay (1.1.3)
53
- concurrent-ruby (1.2.3)
53
+ concurrent-ruby (1.3.1)
54
54
  connection_pool (2.4.1)
55
55
  crass (1.0.6)
56
56
  diff-lcs (1.5.1)
57
- drb (2.2.0)
58
- ruby2_keywords
57
+ drb (2.2.1)
59
58
  erubi (1.12.0)
60
- i18n (1.14.1)
59
+ i18n (1.14.5)
61
60
  concurrent-ruby (~> 1.0)
62
61
  iniparse (1.5.0)
63
62
  io-console (0.7.2)
@@ -70,11 +69,11 @@ GEM
70
69
  crass (~> 1.0.2)
71
70
  nokogiri (>= 1.12.0)
72
71
  method_source (1.0.0)
73
- minitest (5.22.2)
72
+ minitest (5.23.1)
74
73
  mutex_m (0.2.0)
75
- nokogiri (1.16.2-arm64-darwin)
74
+ nokogiri (1.16.5-arm64-darwin)
76
75
  racc (~> 1.4)
77
- nokogiri (1.16.2-x86_64-linux)
76
+ nokogiri (1.16.5-x86_64-linux)
78
77
  racc (~> 1.4)
79
78
  overcommit (0.63.0)
80
79
  childprocess (>= 0.6.3, < 6)
@@ -89,8 +88,8 @@ GEM
89
88
  method_source (~> 1.0)
90
89
  psych (5.1.2)
91
90
  stringio
92
- racc (1.7.3)
93
- rack (3.0.9.1)
91
+ racc (1.8.0)
92
+ rack (3.0.11)
94
93
  rack-session (2.0.0)
95
94
  rack (>= 3.0.0)
96
95
  rack-test (2.1.0)
@@ -105,9 +104,9 @@ GEM
105
104
  rails-html-sanitizer (1.6.0)
106
105
  loofah (~> 2.21)
107
106
  nokogiri (~> 1.14)
108
- railties (7.1.3.2)
109
- actionpack (= 7.1.3.2)
110
- activesupport (= 7.1.3.2)
107
+ railties (7.1.3.4)
108
+ actionpack (= 7.1.3.4)
109
+ activesupport (= 7.1.3.4)
111
110
  irb
112
111
  rackup (>= 1.0.0)
113
112
  rake (>= 12.2)
@@ -121,7 +120,8 @@ GEM
121
120
  regexp_parser (2.9.0)
122
121
  reline (0.4.3)
123
122
  io-console (~> 0.5)
124
- rexml (3.2.6)
123
+ rexml (3.2.8)
124
+ strscan (>= 3.0.9)
125
125
  rspec (3.13.0)
126
126
  rspec-core (~> 3.13.0)
127
127
  rspec-expectations (~> 3.13.0)
@@ -149,10 +149,10 @@ GEM
149
149
  rubocop-ast (1.30.0)
150
150
  parser (>= 3.2.1.0)
151
151
  ruby-progressbar (1.13.0)
152
- ruby2_keywords (0.0.5)
153
152
  sqlite3 (1.7.2-arm64-darwin)
154
153
  sqlite3 (1.7.2-x86_64-linux)
155
154
  stringio (3.1.0)
155
+ strscan (3.1.0)
156
156
  thor (1.3.1)
157
157
  timecop (0.9.8)
158
158
  timeout (0.4.1)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- data_migrate (9.4.0)
4
+ data_migrate (9.4.2)
5
5
  activerecord (>= 6.1)
6
6
  railties (>= 6.1)
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- data_migrate (9.4.0)
4
+ data_migrate (9.4.2)
5
5
  activerecord (>= 6.1)
6
6
  railties (>= 6.1)
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- data_migrate (9.4.0)
4
+ data_migrate (9.4.2)
5
5
  activerecord (>= 6.1)
6
6
  railties (>= 6.1)
7
7
 
@@ -173,5 +173,73 @@ module DataMigrate
173
173
 
174
174
  sort&.downcase == "asc" ? sort_migrations(migrations) : sort_migrations(migrations).reverse
175
175
  end
176
+
177
+ def self.migrate_with_data
178
+ DataMigrate::DataMigrator.create_data_schema_table
179
+
180
+ ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
181
+
182
+ db_configs = ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env)
183
+
184
+ schema_mapped_versions = ActiveRecord::Tasks::DatabaseTasks.db_configs_with_versions(db_configs)
185
+ data_mapped_versions = DataMigrate::DatabaseTasks.db_configs_with_versions
186
+
187
+ mapped_versions = schema_mapped_versions.merge(data_mapped_versions) do |_key, schema_db_configs, data_db_configs|
188
+ schema_db_configs + data_db_configs
189
+ end
190
+
191
+ mapped_versions.sort.each do |version, db_configs|
192
+ db_configs.each do |db_config|
193
+ if is_data_migration = db_config.is_a?(DataMigrate::DatabaseConfigurationWrapper)
194
+ db_config = db_config.db_config
195
+ end
196
+
197
+ DataMigrate::DatabaseTasks.with_temporary_connection(db_config) do
198
+ if is_data_migration
199
+ DataMigrate::DataMigrator.run(:up, DataMigrate::DatabaseTasks.data_migrations_path, version)
200
+ else
201
+ ActiveRecord::Tasks::DatabaseTasks.migrate(version)
202
+ end
203
+ end
204
+ end
205
+ end
206
+ end
207
+
208
+ def self.prepare_all_with_data
209
+ seed = false
210
+
211
+ each_current_configuration(env) do |db_config|
212
+ next unless db_config.primary?
213
+
214
+ with_temporary_pool(db_config) do
215
+ begin
216
+ database_initialized = migration_connection.schema_migration.table_exists?
217
+ rescue ActiveRecord::NoDatabaseError
218
+ create(db_config)
219
+ retry
220
+ end
221
+
222
+ unless database_initialized
223
+ if File.exist?(schema_dump_path(db_config))
224
+ load_schema(db_config, ActiveRecord.schema_format, nil)
225
+ load_schema_current(
226
+ :ruby,
227
+ ENV["DATA_SCHEMA"]
228
+ )
229
+ end
230
+
231
+ seed = true
232
+ end
233
+
234
+ migrate_with_data
235
+ if ActiveRecord.dump_schema_after_migration
236
+ dump_schema(db_config)
237
+ DataMigrate::Tasks::DataMigrateTasks.dump
238
+ end
239
+ end
240
+ end
241
+
242
+ load_seed if seed
243
+ end
176
244
  end
177
245
  end
@@ -1,3 +1,3 @@
1
1
  module DataMigrate
2
- VERSION = "9.4.0".freeze
2
+ VERSION = "9.4.2".freeze
3
3
  end
data/tasks/databases.rake CHANGED
@@ -6,34 +6,7 @@ namespace :db do
6
6
  namespace :migrate do
7
7
  desc "Migrate the database data and schema (options: VERSION=x, VERBOSE=false)."
8
8
  task :with_data => :load_config do
9
- DataMigrate::DataMigrator.create_data_schema_table
10
- ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
11
-
12
- db_configs = ActiveRecord::Base.configurations.configs_for(env_name: ActiveRecord::Tasks::DatabaseTasks.env)
13
-
14
- schema_mapped_versions = ActiveRecord::Tasks::DatabaseTasks.db_configs_with_versions(db_configs)
15
- data_mapped_versions = DataMigrate::DatabaseTasks.db_configs_with_versions
16
-
17
- mapped_versions = schema_mapped_versions.merge(data_mapped_versions) do |_key, schema_db_configs, data_db_configs|
18
- schema_db_configs + data_db_configs
19
- end
20
-
21
- mapped_versions.sort.each do |version, db_configs|
22
- db_configs.each do |db_config|
23
- if is_data_migration = db_config.is_a?(DataMigrate::DatabaseConfigurationWrapper)
24
- db_config = db_config.db_config
25
- end
26
-
27
- DataMigrate::DatabaseTasks.with_temporary_connection(db_config) do
28
- if is_data_migration
29
- DataMigrate::DataMigrator.run(:up, DataMigrate::DatabaseTasks.data_migrations_path, version)
30
- else
31
- ActiveRecord::Tasks::DatabaseTasks.migrate(version)
32
- end
33
- end
34
- end
35
- end
36
-
9
+ DataMigrate::DatabaseTasks.migrate_with_data
37
10
  Rake::Task["db:_dump"].invoke
38
11
  Rake::Task["data:dump"].invoke
39
12
  end
@@ -173,6 +146,13 @@ namespace :db do
173
146
  end
174
147
  end
175
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
176
156
  end
177
157
 
178
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.4.0
4
+ version: 9.4.2
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: 2024-04-29 00:00:00.000000000 Z
13
+ date: 2024-08-14 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord