data_migrate 9.2.0 → 10.0.0.rc1

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 (45) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +3 -2
  3. data/.github/workflows/gempush.yml +8 -6
  4. data/.gitignore +2 -3
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +14 -0
  7. data/Appraisals +5 -5
  8. data/Changelog.md +2 -33
  9. data/README.md +5 -7
  10. data/data_migrate.gemspec +1 -1
  11. data/gemfiles/{rails_7.1.gemfile → rails_6.0.gemfile} +1 -1
  12. data/gemfiles/rails_6.1.gemfile +1 -1
  13. data/lib/data_migrate/data_migrator.rb +23 -11
  14. data/lib/data_migrate/data_schema.rb +2 -2
  15. data/lib/data_migrate/data_schema_migration.rb +7 -24
  16. data/lib/data_migrate/database_tasks.rb +5 -28
  17. data/lib/data_migrate/legacy_migrator.rb +22 -0
  18. data/lib/data_migrate/migration_context.rb +8 -11
  19. data/lib/data_migrate/schema_dumper.rb +1 -1
  20. data/lib/data_migrate/schema_migration.rb +4 -5
  21. data/lib/data_migrate/status_service.rb +4 -4
  22. data/lib/data_migrate/tasks/data_migrate_tasks.rb +15 -14
  23. data/lib/data_migrate/version.rb +1 -1
  24. data/lib/data_migrate.rb +1 -1
  25. data/spec/data_migrate/data_migrator_spec.rb +14 -17
  26. data/spec/data_migrate/data_schema_migration_spec.rb +8 -25
  27. data/spec/data_migrate/data_spec.rb +1 -1
  28. data/spec/data_migrate/database_tasks_spec.rb +19 -34
  29. data/spec/data_migrate/legacy_migrator_spec.rb +38 -0
  30. data/spec/data_migrate/migration_context_spec.rb +8 -15
  31. data/spec/data_migrate/schema_dumper_spec.rb +3 -6
  32. data/spec/data_migrate/schema_migration_spec.rb +6 -13
  33. data/spec/data_migrate/status_service_spec.rb +4 -7
  34. data/spec/data_migrate/tasks/data_migrate_tasks_spec.rb +14 -13
  35. data/spec/db/data/20091231235959_some_name.rb +1 -1
  36. data/spec/db/data/20171231235959_super_update.rb +1 -1
  37. data/spec/db/migrate/20131111111111_late_migration.rb +1 -1
  38. data/spec/db/migrate/20202020202011_db_migration.rb +1 -1
  39. data/tasks/databases.rake +38 -17
  40. metadata +14 -15
  41. data/Gemfile.lock +0 -148
  42. data/gemfiles/rails_6.1.gemfile.lock +0 -227
  43. data/gemfiles/rails_7.0.gemfile.lock +0 -229
  44. data/gemfiles/rails_7.1.gemfile.lock +0 -262
  45. data/lib/data_migrate/rails_helper.rb +0 -79
@@ -1,229 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- data_migrate (9.2.0)
5
- activerecord (>= 6.1)
6
- railties (>= 6.1)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- actioncable (7.0.6)
12
- actionpack (= 7.0.6)
13
- activesupport (= 7.0.6)
14
- nio4r (~> 2.0)
15
- websocket-driver (>= 0.6.1)
16
- actionmailbox (7.0.6)
17
- actionpack (= 7.0.6)
18
- activejob (= 7.0.6)
19
- activerecord (= 7.0.6)
20
- activestorage (= 7.0.6)
21
- activesupport (= 7.0.6)
22
- mail (>= 2.7.1)
23
- net-imap
24
- net-pop
25
- net-smtp
26
- actionmailer (7.0.6)
27
- actionpack (= 7.0.6)
28
- actionview (= 7.0.6)
29
- activejob (= 7.0.6)
30
- activesupport (= 7.0.6)
31
- mail (~> 2.5, >= 2.5.4)
32
- net-imap
33
- net-pop
34
- net-smtp
35
- rails-dom-testing (~> 2.0)
36
- actionpack (7.0.6)
37
- actionview (= 7.0.6)
38
- activesupport (= 7.0.6)
39
- rack (~> 2.0, >= 2.2.4)
40
- rack-test (>= 0.6.3)
41
- rails-dom-testing (~> 2.0)
42
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
43
- actiontext (7.0.6)
44
- actionpack (= 7.0.6)
45
- activerecord (= 7.0.6)
46
- activestorage (= 7.0.6)
47
- activesupport (= 7.0.6)
48
- globalid (>= 0.6.0)
49
- nokogiri (>= 1.8.5)
50
- actionview (7.0.6)
51
- activesupport (= 7.0.6)
52
- builder (~> 3.1)
53
- erubi (~> 1.4)
54
- rails-dom-testing (~> 2.0)
55
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
56
- activejob (7.0.6)
57
- activesupport (= 7.0.6)
58
- globalid (>= 0.3.6)
59
- activemodel (7.0.6)
60
- activesupport (= 7.0.6)
61
- activerecord (7.0.6)
62
- activemodel (= 7.0.6)
63
- activesupport (= 7.0.6)
64
- activestorage (7.0.6)
65
- actionpack (= 7.0.6)
66
- activejob (= 7.0.6)
67
- activerecord (= 7.0.6)
68
- activesupport (= 7.0.6)
69
- marcel (~> 1.0)
70
- mini_mime (>= 1.1.0)
71
- activesupport (7.0.6)
72
- concurrent-ruby (~> 1.0, >= 1.0.2)
73
- i18n (>= 1.6, < 2)
74
- minitest (>= 5.1)
75
- tzinfo (~> 2.0)
76
- appraisal (2.4.1)
77
- bundler
78
- rake
79
- thor (>= 0.14.0)
80
- ast (2.4.2)
81
- builder (3.2.4)
82
- childprocess (4.1.0)
83
- coderay (1.1.3)
84
- concurrent-ruby (1.2.2)
85
- crass (1.0.6)
86
- date (3.3.3)
87
- diff-lcs (1.5.0)
88
- erubi (1.12.0)
89
- globalid (1.1.0)
90
- activesupport (>= 5.0)
91
- i18n (1.14.1)
92
- concurrent-ruby (~> 1.0)
93
- iniparse (1.5.0)
94
- json (2.6.3)
95
- language_server-protocol (3.17.0.3)
96
- loofah (2.21.3)
97
- crass (~> 1.0.2)
98
- nokogiri (>= 1.12.0)
99
- mail (2.8.1)
100
- mini_mime (>= 0.1.1)
101
- net-imap
102
- net-pop
103
- net-smtp
104
- marcel (1.0.2)
105
- method_source (1.0.0)
106
- mini_mime (1.1.2)
107
- minitest (5.18.1)
108
- net-imap (0.3.6)
109
- date
110
- net-protocol
111
- net-pop (0.1.2)
112
- net-protocol
113
- net-protocol (0.2.1)
114
- timeout
115
- net-smtp (0.3.3)
116
- net-protocol
117
- nio4r (2.5.9)
118
- nokogiri (1.15.3-arm64-darwin)
119
- racc (~> 1.4)
120
- nokogiri (1.15.3-x86_64-linux)
121
- racc (~> 1.4)
122
- overcommit (0.60.0)
123
- childprocess (>= 0.6.3, < 5)
124
- iniparse (~> 1.4)
125
- rexml (~> 3.2)
126
- parallel (1.23.0)
127
- parser (3.2.2.3)
128
- ast (~> 2.4.1)
129
- racc
130
- pry (0.14.2)
131
- coderay (~> 1.1)
132
- method_source (~> 1.0)
133
- racc (1.7.1)
134
- rack (2.2.7)
135
- rack-test (2.1.0)
136
- rack (>= 1.3)
137
- rails (7.0.6)
138
- actioncable (= 7.0.6)
139
- actionmailbox (= 7.0.6)
140
- actionmailer (= 7.0.6)
141
- actionpack (= 7.0.6)
142
- actiontext (= 7.0.6)
143
- actionview (= 7.0.6)
144
- activejob (= 7.0.6)
145
- activemodel (= 7.0.6)
146
- activerecord (= 7.0.6)
147
- activestorage (= 7.0.6)
148
- activesupport (= 7.0.6)
149
- bundler (>= 1.15.0)
150
- railties (= 7.0.6)
151
- rails-dom-testing (2.1.1)
152
- activesupport (>= 5.0.0)
153
- minitest
154
- nokogiri (>= 1.6)
155
- rails-html-sanitizer (1.6.0)
156
- loofah (~> 2.21)
157
- nokogiri (~> 1.14)
158
- railties (7.0.6)
159
- actionpack (= 7.0.6)
160
- activesupport (= 7.0.6)
161
- method_source
162
- rake (>= 12.2)
163
- thor (~> 1.0)
164
- zeitwerk (~> 2.5)
165
- rainbow (3.1.1)
166
- rake (13.0.6)
167
- rb-readline (0.5.5)
168
- regexp_parser (2.8.1)
169
- rexml (3.2.5)
170
- rspec (3.12.0)
171
- rspec-core (~> 3.12.0)
172
- rspec-expectations (~> 3.12.0)
173
- rspec-mocks (~> 3.12.0)
174
- rspec-core (3.12.2)
175
- rspec-support (~> 3.12.0)
176
- rspec-expectations (3.12.3)
177
- diff-lcs (>= 1.2.0, < 2.0)
178
- rspec-support (~> 3.12.0)
179
- rspec-mocks (3.12.5)
180
- diff-lcs (>= 1.2.0, < 2.0)
181
- rspec-support (~> 3.12.0)
182
- rspec-support (3.12.1)
183
- rubocop (1.54.1)
184
- json (~> 2.3)
185
- language_server-protocol (>= 3.17.0)
186
- parallel (~> 1.10)
187
- parser (>= 3.2.2.3)
188
- rainbow (>= 2.2.2, < 4.0)
189
- regexp_parser (>= 1.8, < 3.0)
190
- rexml (>= 3.2.5, < 4.0)
191
- rubocop-ast (>= 1.28.0, < 2.0)
192
- ruby-progressbar (~> 1.7)
193
- unicode-display_width (>= 2.4.0, < 3.0)
194
- rubocop-ast (1.29.0)
195
- parser (>= 3.2.1.0)
196
- ruby-progressbar (1.13.0)
197
- sqlite3 (1.6.3-arm64-darwin)
198
- sqlite3 (1.6.3-x86_64-linux)
199
- thor (1.2.2)
200
- timecop (0.9.6)
201
- timeout (0.4.0)
202
- tzinfo (2.0.6)
203
- concurrent-ruby (~> 1.0)
204
- unicode-display_width (2.4.2)
205
- websocket-driver (0.7.5)
206
- websocket-extensions (>= 0.1.0)
207
- websocket-extensions (0.1.5)
208
- zeitwerk (2.6.8)
209
-
210
- PLATFORMS
211
- arm64-darwin-22
212
- x86_64-linux
213
-
214
- DEPENDENCIES
215
- appraisal
216
- data_migrate!
217
- overcommit
218
- pry
219
- rails (~> 7.0)
220
- rake
221
- rb-readline
222
- rspec
223
- rspec-core
224
- rubocop
225
- sqlite3 (~> 1.4)
226
- timecop
227
-
228
- BUNDLED WITH
229
- 2.4.14
@@ -1,262 +0,0 @@
1
- PATH
2
- remote: ..
3
- specs:
4
- data_migrate (9.2.0)
5
- activerecord (>= 6.1)
6
- railties (>= 6.1)
7
-
8
- GEM
9
- remote: http://rubygems.org/
10
- specs:
11
- actioncable (7.1.0)
12
- actionpack (= 7.1.0)
13
- activesupport (= 7.1.0)
14
- nio4r (~> 2.0)
15
- websocket-driver (>= 0.6.1)
16
- zeitwerk (~> 2.6)
17
- actionmailbox (7.1.0)
18
- actionpack (= 7.1.0)
19
- activejob (= 7.1.0)
20
- activerecord (= 7.1.0)
21
- activestorage (= 7.1.0)
22
- activesupport (= 7.1.0)
23
- mail (>= 2.7.1)
24
- net-imap
25
- net-pop
26
- net-smtp
27
- actionmailer (7.1.0)
28
- actionpack (= 7.1.0)
29
- actionview (= 7.1.0)
30
- activejob (= 7.1.0)
31
- activesupport (= 7.1.0)
32
- mail (~> 2.5, >= 2.5.4)
33
- net-imap
34
- net-pop
35
- net-smtp
36
- rails-dom-testing (~> 2.2)
37
- actionpack (7.1.0)
38
- actionview (= 7.1.0)
39
- activesupport (= 7.1.0)
40
- nokogiri (>= 1.8.5)
41
- rack (>= 2.2.4)
42
- rack-session (>= 1.0.1)
43
- rack-test (>= 0.6.3)
44
- rails-dom-testing (~> 2.2)
45
- rails-html-sanitizer (~> 1.6)
46
- actiontext (7.1.0)
47
- actionpack (= 7.1.0)
48
- activerecord (= 7.1.0)
49
- activestorage (= 7.1.0)
50
- activesupport (= 7.1.0)
51
- globalid (>= 0.6.0)
52
- nokogiri (>= 1.8.5)
53
- actionview (7.1.0)
54
- activesupport (= 7.1.0)
55
- builder (~> 3.1)
56
- erubi (~> 1.11)
57
- rails-dom-testing (~> 2.2)
58
- rails-html-sanitizer (~> 1.6)
59
- activejob (7.1.0)
60
- activesupport (= 7.1.0)
61
- globalid (>= 0.3.6)
62
- activemodel (7.1.0)
63
- activesupport (= 7.1.0)
64
- activerecord (7.1.0)
65
- activemodel (= 7.1.0)
66
- activesupport (= 7.1.0)
67
- timeout (>= 0.4.0)
68
- activestorage (7.1.0)
69
- actionpack (= 7.1.0)
70
- activejob (= 7.1.0)
71
- activerecord (= 7.1.0)
72
- activesupport (= 7.1.0)
73
- marcel (~> 1.0)
74
- activesupport (7.1.0)
75
- base64
76
- bigdecimal
77
- concurrent-ruby (~> 1.0, >= 1.0.2)
78
- connection_pool (>= 2.2.5)
79
- drb
80
- i18n (>= 1.6, < 2)
81
- minitest (>= 5.1)
82
- mutex_m
83
- tzinfo (~> 2.0)
84
- appraisal (2.5.0)
85
- bundler
86
- rake
87
- thor (>= 0.14.0)
88
- ast (2.4.2)
89
- base64 (0.1.1)
90
- bigdecimal (3.1.4)
91
- builder (3.2.4)
92
- childprocess (4.1.0)
93
- coderay (1.1.3)
94
- concurrent-ruby (1.2.2)
95
- connection_pool (2.4.1)
96
- crass (1.0.6)
97
- date (3.3.3)
98
- diff-lcs (1.5.0)
99
- drb (2.1.1)
100
- ruby2_keywords
101
- erubi (1.12.0)
102
- globalid (1.2.1)
103
- activesupport (>= 6.1)
104
- i18n (1.14.1)
105
- concurrent-ruby (~> 1.0)
106
- iniparse (1.5.0)
107
- io-console (0.6.0)
108
- irb (1.8.1)
109
- rdoc
110
- reline (>= 0.3.8)
111
- json (2.6.3)
112
- language_server-protocol (3.17.0.3)
113
- loofah (2.21.3)
114
- crass (~> 1.0.2)
115
- nokogiri (>= 1.12.0)
116
- mail (2.8.1)
117
- mini_mime (>= 0.1.1)
118
- net-imap
119
- net-pop
120
- net-smtp
121
- marcel (1.0.2)
122
- method_source (1.0.0)
123
- mini_mime (1.1.5)
124
- minitest (5.20.0)
125
- mutex_m (0.1.2)
126
- net-imap (0.4.0)
127
- date
128
- net-protocol
129
- net-pop (0.1.2)
130
- net-protocol
131
- net-protocol (0.2.1)
132
- timeout
133
- net-smtp (0.4.0)
134
- net-protocol
135
- nio4r (2.5.9)
136
- nokogiri (1.15.4-arm64-darwin)
137
- racc (~> 1.4)
138
- nokogiri (1.15.4-x86_64-linux)
139
- racc (~> 1.4)
140
- overcommit (0.60.0)
141
- childprocess (>= 0.6.3, < 5)
142
- iniparse (~> 1.4)
143
- rexml (~> 3.2)
144
- parallel (1.23.0)
145
- parser (3.2.2.3)
146
- ast (~> 2.4.1)
147
- racc
148
- pry (0.14.2)
149
- coderay (~> 1.1)
150
- method_source (~> 1.0)
151
- psych (5.1.0)
152
- stringio
153
- racc (1.7.1)
154
- rack (3.0.8)
155
- rack-session (2.0.0)
156
- rack (>= 3.0.0)
157
- rack-test (2.1.0)
158
- rack (>= 1.3)
159
- rackup (2.1.0)
160
- rack (>= 3)
161
- webrick (~> 1.8)
162
- rails (7.1.0)
163
- actioncable (= 7.1.0)
164
- actionmailbox (= 7.1.0)
165
- actionmailer (= 7.1.0)
166
- actionpack (= 7.1.0)
167
- actiontext (= 7.1.0)
168
- actionview (= 7.1.0)
169
- activejob (= 7.1.0)
170
- activemodel (= 7.1.0)
171
- activerecord (= 7.1.0)
172
- activestorage (= 7.1.0)
173
- activesupport (= 7.1.0)
174
- bundler (>= 1.15.0)
175
- railties (= 7.1.0)
176
- rails-dom-testing (2.2.0)
177
- activesupport (>= 5.0.0)
178
- minitest
179
- nokogiri (>= 1.6)
180
- rails-html-sanitizer (1.6.0)
181
- loofah (~> 2.21)
182
- nokogiri (~> 1.14)
183
- railties (7.1.0)
184
- actionpack (= 7.1.0)
185
- activesupport (= 7.1.0)
186
- irb
187
- rackup (>= 1.0.0)
188
- rake (>= 12.2)
189
- thor (~> 1.0, >= 1.2.2)
190
- zeitwerk (~> 2.6)
191
- rainbow (3.1.1)
192
- rake (13.0.6)
193
- rb-readline (0.5.5)
194
- rdoc (6.5.0)
195
- psych (>= 4.0.0)
196
- regexp_parser (2.8.1)
197
- reline (0.3.9)
198
- io-console (~> 0.5)
199
- rexml (3.2.5)
200
- rspec (3.12.0)
201
- rspec-core (~> 3.12.0)
202
- rspec-expectations (~> 3.12.0)
203
- rspec-mocks (~> 3.12.0)
204
- rspec-core (3.12.2)
205
- rspec-support (~> 3.12.0)
206
- rspec-expectations (3.12.3)
207
- diff-lcs (>= 1.2.0, < 2.0)
208
- rspec-support (~> 3.12.0)
209
- rspec-mocks (3.12.6)
210
- diff-lcs (>= 1.2.0, < 2.0)
211
- rspec-support (~> 3.12.0)
212
- rspec-support (3.12.1)
213
- rubocop (1.54.2)
214
- json (~> 2.3)
215
- language_server-protocol (>= 3.17.0)
216
- parallel (~> 1.10)
217
- parser (>= 3.2.2.3)
218
- rainbow (>= 2.2.2, < 4.0)
219
- regexp_parser (>= 1.8, < 3.0)
220
- rexml (>= 3.2.5, < 4.0)
221
- rubocop-ast (>= 1.28.0, < 2.0)
222
- ruby-progressbar (~> 1.7)
223
- unicode-display_width (>= 2.4.0, < 3.0)
224
- rubocop-ast (1.29.0)
225
- parser (>= 3.2.1.0)
226
- ruby-progressbar (1.13.0)
227
- ruby2_keywords (0.0.5)
228
- sqlite3 (1.6.3-arm64-darwin)
229
- sqlite3 (1.6.3-x86_64-linux)
230
- stringio (3.0.8)
231
- thor (1.2.2)
232
- timecop (0.9.6)
233
- timeout (0.4.0)
234
- tzinfo (2.0.6)
235
- concurrent-ruby (~> 1.0)
236
- unicode-display_width (2.4.2)
237
- webrick (1.8.1)
238
- websocket-driver (0.7.6)
239
- websocket-extensions (>= 0.1.0)
240
- websocket-extensions (0.1.5)
241
- zeitwerk (2.6.12)
242
-
243
- PLATFORMS
244
- arm64-darwin-22
245
- x86_64-linux
246
-
247
- DEPENDENCIES
248
- appraisal
249
- data_migrate!
250
- overcommit
251
- pry
252
- rails (= 7.1.0)
253
- rake
254
- rb-readline
255
- rspec
256
- rspec-core
257
- rubocop
258
- sqlite3 (~> 1.4)
259
- timecop
260
-
261
- BUNDLED WITH
262
- 2.4.17
@@ -1,79 +0,0 @@
1
- module DataMigrate
2
- class RailsHelper
3
- class << self
4
- def rails_version_equal_to_or_higher_than_7_1
5
- return @equal_to_or_higher_than_7_1 if defined?(@equal_to_or_higher_than_7_1)
6
-
7
- @equal_to_or_higher_than_7_1 = Gem::Dependency.new("railties", ">= 7.1.0.alpha").match?("railties", Gem.loaded_specs["railties"].version, true)
8
- end
9
-
10
- def rails_version_equal_to_or_higher_than_7_0
11
- return @rails_version_equal_to_or_higher_than_7_0 if defined?(@rails_version_equal_to_or_higher_than_7_0)
12
-
13
- @rails_version_equal_to_or_higher_than_7_0 = Gem::Dependency.new("railties", ">= 7.0").match?("railties", Gem.loaded_specs["railties"].version, true)
14
- end
15
-
16
- def internal_metadata
17
- if rails_version_equal_to_or_higher_than_7_1
18
- ActiveRecord::Base.connection.internal_metadata
19
- else
20
- ActiveRecord::InternalMetadata
21
- end
22
- end
23
-
24
- def schema_migration
25
- if rails_version_equal_to_or_higher_than_7_1
26
- ActiveRecord::Base.connection.schema_migration
27
- else
28
- ActiveRecord::SchemaMigration
29
- end
30
- end
31
-
32
- def schema_migration_versions
33
- if rails_version_equal_to_or_higher_than_7_1
34
- schema_migration.versions
35
- else
36
- schema_migration.all.pluck(:version)
37
- end
38
- end
39
-
40
- def schema_create_version(version)
41
- if rails_version_equal_to_or_higher_than_7_1
42
- schema_migration.create_version(version)
43
- else
44
- schema_migration.create(version: version)
45
- end
46
- end
47
-
48
- def data_schema_delete_version(version)
49
- if rails_version_equal_to_or_higher_than_7_1
50
- data_schema_migration.delete_version(version)
51
- else
52
- data_schema_migration.where(version: version.to_s).delete_all
53
- end
54
- end
55
-
56
- def data_schema_migration
57
- if rails_version_equal_to_or_higher_than_7_1
58
- DataMigrate::DataSchemaMigration.new(ActiveRecord::Tasks::DatabaseTasks.migration_connection)
59
- else
60
- DataMigrate::DataSchemaMigration
61
- end
62
- end
63
-
64
- def data_migrator(
65
- direction,
66
- migrations,
67
- schema_migration = DataMigrate::RailsHelper.schema_migration,
68
- internal_metadata = DataMigrate::RailsHelper.internal_metadata,
69
- target_version = nil
70
- )
71
- if rails_version_equal_to_or_higher_than_7_1
72
- DataMigrate::DataMigrator.new(direction, migrations, schema_migration, internal_metadata, target_version)
73
- else
74
- DataMigrate::DataMigrator.new(direction, migrations, schema_migration, target_version)
75
- end
76
- end
77
- end
78
- end
79
- end