data-migration 1.2.0 → 2.0.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +38 -8
  4. data/data-migration.gemspec +27 -15
  5. data/lib/data-migration.rb +1 -1
  6. data/lib/data_migration/config.rb +1 -1
  7. data/lib/data_migration/job.rb +27 -9
  8. data/lib/data_migration/task.rb +22 -19
  9. data/lib/generators/data_migration/install_generator.rb +28 -0
  10. data/lib/generators/{templates → data_migration/templates}/install_data_migration_tasks.rb.tt +4 -0
  11. metadata +187 -67
  12. data/.editorconfig +0 -14
  13. data/.github/dependabot.yml +0 -27
  14. data/.github/workflows/_trunk_check.yml +0 -15
  15. data/.github/workflows/test.yml +0 -42
  16. data/.gitignore +0 -24
  17. data/.ruby-version +0 -1
  18. data/.trunk/.gitignore +0 -9
  19. data/.trunk/configs/.markdownlint.yaml +0 -2
  20. data/.trunk/configs/.shellcheckrc +0 -7
  21. data/.trunk/configs/.yamllint.yaml +0 -7
  22. data/.trunk/trunk.yaml +0 -39
  23. data/.vscode/extensions.json +0 -18
  24. data/.vscode/settings.json +0 -7
  25. data/Gemfile +0 -3
  26. data/Gemfile.lock +0 -246
  27. data/lib/generators/install_generator.rb +0 -17
  28. data/spec/data_migration/config_spec.rb +0 -116
  29. data/spec/data_migration/job_spec.rb +0 -96
  30. data/spec/data_migration/task_spec.rb +0 -152
  31. data/spec/data_migration_spec.rb +0 -65
  32. data/spec/fixtures/data_migrations/20241206200111_create_users.rb +0 -17
  33. data/spec/fixtures/data_migrations/20241206200112_create_bad_users.rb +0 -5
  34. data/spec/fixtures/data_migrations/20241206200113_change_users.rb +0 -5
  35. data/spec/fixtures/data_migrations/20241206200114_create_batch_users.rb +0 -9
  36. data/spec/fixtures/schema.rb +0 -26
  37. data/spec/generators/install_generator_spec.rb +0 -48
  38. data/spec/generators/migration_generator_spec.rb +0 -50
  39. data/spec/rails_helper.rb +0 -21
  40. data/spec/spec_helper.rb +0 -30
  41. data/spec/support/junit_formatter.rb +0 -6
  42. data/spec/support/rails_helpers.rb +0 -53
  43. data/usr/bin/release.sh +0 -35
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data-migration
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrei Makarov
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-10 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -70,14 +69,14 @@ dependencies:
70
69
  name: bundler
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
- - - "~>"
72
+ - - ">="
74
73
  - !ruby/object:Gem::Version
75
74
  version: '2'
76
75
  type: :development
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
- - - "~>"
79
+ - - ">="
81
80
  - !ruby/object:Gem::Version
82
81
  version: '2'
83
82
  - !ruby/object:Gem::Dependency
@@ -94,6 +93,48 @@ dependencies:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
95
  version: '3'
96
+ - !ruby/object:Gem::Dependency
97
+ name: polyrun
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 2.2.0
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 2.2.0
110
+ - !ruby/object:Gem::Dependency
111
+ name: prosopite
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '2.0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: webmock
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '3'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '3'
97
138
  - !ruby/object:Gem::Dependency
98
139
  name: rspec_junit_formatter
99
140
  requirement: !ruby/object:Gem::Requirement
@@ -114,65 +155,177 @@ dependencies:
114
155
  requirements:
115
156
  - - "~>"
116
157
  - !ruby/object:Gem::Version
117
- version: '0.21'
158
+ version: '0.22'
118
159
  type: :development
119
160
  prerelease: false
120
161
  version_requirements: !ruby/object:Gem::Requirement
121
162
  requirements:
122
163
  - - "~>"
123
164
  - !ruby/object:Gem::Version
124
- version: '0.21'
165
+ version: '0.22'
125
166
  - !ruby/object:Gem::Dependency
126
167
  name: simplecov-cobertura
127
168
  requirement: !ruby/object:Gem::Requirement
128
169
  requirements:
129
170
  - - "~>"
130
171
  - !ruby/object:Gem::Version
131
- version: '2'
172
+ version: '3'
132
173
  type: :development
133
174
  prerelease: false
134
175
  version_requirements: !ruby/object:Gem::Requirement
135
176
  requirements:
136
177
  - - "~>"
137
178
  - !ruby/object:Gem::Version
138
- version: '2'
179
+ version: '3'
180
+ - !ruby/object:Gem::Dependency
181
+ name: rbs
182
+ requirement: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '3'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '3'
194
+ - !ruby/object:Gem::Dependency
195
+ name: standard
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '1.52'
201
+ type: :development
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '1.52'
208
+ - !ruby/object:Gem::Dependency
209
+ name: standard-custom
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '1.0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '1.0'
222
+ - !ruby/object:Gem::Dependency
223
+ name: standard-performance
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '1.8'
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '1.8'
236
+ - !ruby/object:Gem::Dependency
237
+ name: standard-rails
238
+ requirement: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '1.5'
243
+ type: :development
244
+ prerelease: false
245
+ version_requirements: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '1.5'
250
+ - !ruby/object:Gem::Dependency
251
+ name: standard-rspec
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '0.3'
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '0.3'
139
264
  - !ruby/object:Gem::Dependency
140
- name: sqlite3
265
+ name: rubocop-rails
141
266
  requirement: !ruby/object:Gem::Requirement
142
267
  requirements:
143
268
  - - "~>"
144
269
  - !ruby/object:Gem::Version
145
- version: '2.4'
270
+ version: '2.33'
146
271
  type: :development
147
272
  prerelease: false
148
273
  version_requirements: !ruby/object:Gem::Requirement
149
274
  requirements:
150
275
  - - "~>"
151
276
  - !ruby/object:Gem::Version
152
- version: '2.4'
153
- description: Data migrations kit for ActiveRecord and ActiveJob
277
+ version: '2.33'
278
+ - !ruby/object:Gem::Dependency
279
+ name: rubocop-rspec
280
+ requirement: !ruby/object:Gem::Requirement
281
+ requirements:
282
+ - - "~>"
283
+ - !ruby/object:Gem::Version
284
+ version: '3.8'
285
+ type: :development
286
+ prerelease: false
287
+ version_requirements: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: '3.8'
292
+ - !ruby/object:Gem::Dependency
293
+ name: rubocop-thread_safety
294
+ requirement: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: '0.7'
299
+ type: :development
300
+ prerelease: false
301
+ version_requirements: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - "~>"
304
+ - !ruby/object:Gem::Version
305
+ version: '0.7'
306
+ - !ruby/object:Gem::Dependency
307
+ name: appraisal
308
+ requirement: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - "~>"
311
+ - !ruby/object:Gem::Version
312
+ version: '2'
313
+ type: :development
314
+ prerelease: false
315
+ version_requirements: !ruby/object:Gem::Requirement
316
+ requirements:
317
+ - - "~>"
318
+ - !ruby/object:Gem::Version
319
+ version: '2'
320
+ description: Run and track data migrations through ActiveRecord tasks and ActiveJob
321
+ workers.
154
322
  email:
155
- - andrei@kiskolabs.com
323
+ - contact@kiskolabs.com
156
324
  executables: []
157
325
  extensions: []
158
326
  extra_rdoc_files: []
159
327
  files:
160
- - ".editorconfig"
161
- - ".github/dependabot.yml"
162
- - ".github/workflows/_trunk_check.yml"
163
- - ".github/workflows/test.yml"
164
- - ".gitignore"
165
- - ".ruby-version"
166
- - ".trunk/.gitignore"
167
- - ".trunk/configs/.markdownlint.yaml"
168
- - ".trunk/configs/.shellcheckrc"
169
- - ".trunk/configs/.yamllint.yaml"
170
- - ".trunk/trunk.yaml"
171
- - ".vscode/extensions.json"
172
- - ".vscode/settings.json"
173
328
  - CHANGELOG.md
174
- - Gemfile
175
- - Gemfile.lock
176
329
  - LICENSE.md
177
330
  - README.md
178
331
  - data-migration.gemspec
@@ -180,26 +333,10 @@ files:
180
333
  - lib/data_migration/config.rb
181
334
  - lib/data_migration/job.rb
182
335
  - lib/data_migration/task.rb
336
+ - lib/generators/data_migration/install_generator.rb
337
+ - lib/generators/data_migration/templates/install_data_migration_tasks.rb.tt
183
338
  - lib/generators/data_migration_generator.rb
184
- - lib/generators/install_generator.rb
185
339
  - lib/generators/templates/data_migration.rb.tt
186
- - lib/generators/templates/install_data_migration_tasks.rb.tt
187
- - spec/data_migration/config_spec.rb
188
- - spec/data_migration/job_spec.rb
189
- - spec/data_migration/task_spec.rb
190
- - spec/data_migration_spec.rb
191
- - spec/fixtures/data_migrations/20241206200111_create_users.rb
192
- - spec/fixtures/data_migrations/20241206200112_create_bad_users.rb
193
- - spec/fixtures/data_migrations/20241206200113_change_users.rb
194
- - spec/fixtures/data_migrations/20241206200114_create_batch_users.rb
195
- - spec/fixtures/schema.rb
196
- - spec/generators/install_generator_spec.rb
197
- - spec/generators/migration_generator_spec.rb
198
- - spec/rails_helper.rb
199
- - spec/spec_helper.rb
200
- - spec/support/junit_formatter.rb
201
- - spec/support/rails_helpers.rb
202
- - usr/bin/release.sh
203
340
  homepage: https://github.com/amkisko/data-migration.rb
204
341
  licenses:
205
342
  - MIT
@@ -209,7 +346,6 @@ metadata:
209
346
  bug_tracker_uri: https://github.com/amkisko/data-migration.rb/issues
210
347
  changelog_uri: https://github.com/amkisko/data-migration.rb/blob/main/CHANGELOG.md
211
348
  rubygems_mfa_required: 'true'
212
- post_install_message:
213
349
  rdoc_options: []
214
350
  require_paths:
215
351
  - lib
@@ -217,30 +353,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
217
353
  requirements:
218
354
  - - ">="
219
355
  - !ruby/object:Gem::Version
220
- version: '3'
356
+ version: '3.4'
221
357
  required_rubygems_version: !ruby/object:Gem::Requirement
222
358
  requirements:
223
359
  - - ">="
224
360
  - !ruby/object:Gem::Version
225
361
  version: '0'
226
362
  requirements: []
227
- rubygems_version: 3.5.11
228
- signing_key:
363
+ rubygems_version: 4.0.6
229
364
  specification_version: 4
230
365
  summary: Data migrations kit for ActiveRecord and ActiveJob
231
- test_files:
232
- - spec/data_migration/config_spec.rb
233
- - spec/data_migration/job_spec.rb
234
- - spec/data_migration/task_spec.rb
235
- - spec/data_migration_spec.rb
236
- - spec/fixtures/data_migrations/20241206200111_create_users.rb
237
- - spec/fixtures/data_migrations/20241206200112_create_bad_users.rb
238
- - spec/fixtures/data_migrations/20241206200113_change_users.rb
239
- - spec/fixtures/data_migrations/20241206200114_create_batch_users.rb
240
- - spec/fixtures/schema.rb
241
- - spec/generators/install_generator_spec.rb
242
- - spec/generators/migration_generator_spec.rb
243
- - spec/rails_helper.rb
244
- - spec/spec_helper.rb
245
- - spec/support/junit_formatter.rb
246
- - spec/support/rails_helpers.rb
366
+ test_files: []
data/.editorconfig DELETED
@@ -1,14 +0,0 @@
1
- # Editor configuration, see https://editorconfig.org
2
- root = true
3
-
4
- [*]
5
- charset = utf-8
6
- indent_style = space
7
- indent_size = 2
8
- insert_final_newline = true
9
- trim_trailing_whitespace = true
10
- quote_type = double
11
-
12
- [*.md]
13
- max_line_length = off
14
- trim_trailing_whitespace = false
@@ -1,27 +0,0 @@
1
- # To get started with Dependabot version updates, you'll need to specify which
2
- # package ecosystems to update and where the package manifests are located.
3
- # Please see the documentation for all configuration options:
4
- # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
-
6
- version: 2
7
- updates:
8
- - package-ecosystem: github-actions
9
- directory: /
10
- open-pull-requests-limit: 10
11
- schedule:
12
- interval: weekly
13
- - package-ecosystem: bundler
14
- directory: /
15
- open-pull-requests-limit: 10
16
- schedule:
17
- interval: weekly
18
- - package-ecosystem: npm
19
- directory: /
20
- open-pull-requests-limit: 10
21
- schedule:
22
- interval: weekly
23
- - package-ecosystem: docker
24
- directory: /
25
- open-pull-requests-limit: 10
26
- schedule:
27
- interval: weekly
@@ -1,15 +0,0 @@
1
- name: _trunk_check
2
- on: [pull_request]
3
- concurrency:
4
- group: ${{ github.head_ref || github.run_id }}
5
- cancel-in-progress: true
6
- permissions: read-all
7
- jobs:
8
- run_trunk_action:
9
- runs-on: ubuntu-latest
10
- permissions:
11
- checks: write
12
- contents: read
13
- steps:
14
- - uses: actions/checkout@v4
15
- - uses: trunk-io/trunk-action@v1
@@ -1,42 +0,0 @@
1
- name: test
2
- permissions: read-all
3
- on: [push, pull_request]
4
- concurrency:
5
- group: ${{ github.workflow }}-${{ github.ref_name }}
6
- cancel-in-progress: false
7
- jobs:
8
- rspec:
9
- runs-on: ubuntu-latest
10
- strategy:
11
- matrix:
12
- ruby: [ruby, jruby, truffleruby]
13
- steps:
14
- - uses: actions/checkout@v4
15
- - uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: ${{ matrix.ruby }}
18
- bundler-cache: true
19
- - run: bundle exec rspec
20
- coverage:
21
- runs-on: ubuntu-latest
22
- steps:
23
- - uses: actions/checkout@v4
24
- - uses: ruby/setup-ruby@v1
25
- with:
26
- bundler-cache: true
27
- - run: bundle exec rspec
28
- - uses: codecov/codecov-action@v5
29
- continue-on-error: true
30
- env:
31
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
32
- - uses: codecov/test-results-action@v1
33
- if: ${{ !cancelled() }}
34
- continue-on-error: true
35
- with:
36
- token: ${{ secrets.CODECOV_TOKEN }}
37
- files: coverage/junit-coverage.xml
38
- - uses: codacy/codacy-coverage-reporter-action@v1.3.0
39
- continue-on-error: true
40
- with:
41
- project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
42
- coverage-reports: coverage/coverage.xml
data/.gitignore DELETED
@@ -1,24 +0,0 @@
1
- # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
- #
3
- # If you find yourself ignoring temporary files generated by your text editor
4
- # or operating system, you probably want to add a global ignore instead:
5
- # git config --global core.excludesfile '~/.gitignore_global'
6
-
7
- # Ignore bundler config.
8
- /.bundle
9
- /vendor/bundle
10
-
11
- .byebug_history
12
-
13
- /coverage
14
- /coverage/*
15
-
16
- /spec/examples.txt
17
- /tmp/*
18
-
19
- .DS_Store
20
- .idea
21
- .lh
22
-
23
- *.local
24
- *.gem
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- 3.3.4
data/.trunk/.gitignore DELETED
@@ -1,9 +0,0 @@
1
- *out
2
- *logs
3
- *actions
4
- *notifications
5
- *tools
6
- plugins
7
- user_trunk.yaml
8
- user.yaml
9
- tmp
@@ -1,2 +0,0 @@
1
- # Prettier friendly markdownlint config (all formatting rules disabled)
2
- extends: markdownlint/style/prettier
@@ -1,7 +0,0 @@
1
- enable=all
2
- source-path=SCRIPTDIR
3
- disable=SC2154
4
-
5
- # If you're having issues with shellcheck following source, disable the errors via:
6
- # disable=SC1090
7
- # disable=SC1091
@@ -1,7 +0,0 @@
1
- rules:
2
- quoted-strings:
3
- required: only-when-needed
4
- extra-allowed: ["{|}"]
5
- key-duplicates: {}
6
- octal-values:
7
- forbid-implicit-octal: true
data/.trunk/trunk.yaml DELETED
@@ -1,39 +0,0 @@
1
- # This file controls the behavior of Trunk: https://docs.trunk.io/cli
2
- # To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml
3
- version: 0.1
4
- cli:
5
- version: 1.22.8
6
- # Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins)
7
- plugins:
8
- sources:
9
- - id: trunk
10
- ref: v1.6.5
11
- uri: https://github.com/trunk-io/plugins
12
- # Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes)
13
- runtimes:
14
- enabled:
15
- - ruby@3.1.4
16
- - go@1.21.0
17
- - node@18.12.1
18
- - python@3.10.8
19
- # This is the section where you manage your linters. (https://docs.trunk.io/check/configuration)
20
- lint:
21
- enabled:
22
- - standardrb@1.3.0
23
- - actionlint@1.7.4
24
- - checkov@3.2.332
25
- - git-diff-check
26
- - markdownlint@0.43.0
27
- - osv-scanner@1.9.1
28
- - prettier@3.4.2
29
- - shellcheck@0.10.0
30
- - shfmt@3.6.0
31
- - trufflehog@3.85.0
32
- - yamllint@1.35.1
33
- actions:
34
- disabled:
35
- - trunk-announce
36
- - trunk-check-pre-push
37
- - trunk-fmt-pre-commit
38
- enabled:
39
- - trunk-upgrade-available
@@ -1,18 +0,0 @@
1
- {
2
- "recommendations": [
3
- "donjayamanne.githistory",
4
- "editorconfig.editorconfig",
5
- "mikestead.dotenv",
6
- "anweber.vscode-httpyac",
7
- "shopify.ruby-lsp",
8
- "bung87.vscode-gemfile",
9
- "wayou.vscode-todo-highlight",
10
- "vscode-icons-team.vscode-icons",
11
- "koichisasada.vscode-rdbg",
12
- "fooo.ruby-spec-runner",
13
- "nhoizey.gremlins",
14
- "streetsidesoftware.code-spell-checker",
15
- "dewski.simplecov",
16
- "trunk.io"
17
- ]
18
- }
@@ -1,7 +0,0 @@
1
- {
2
- "editor.defaultFormatter": "trunk.io",
3
- "editor.formatOnSave": false,
4
- "editor.detectIndentation": false,
5
- "editor.tabSize": 2,
6
- "editor.insertSpaces": true
7
- }
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec