data-migration 1.2.0 → 1.3.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 +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +11 -5
- data/lib/data-migration.rb +1 -1
- data/lib/generators/data_migration/install_generator.rb +28 -0
- data/lib/generators/{templates → data_migration/templates}/install_data_migration_tasks.rb.tt +4 -0
- data/spec/generators/install_generator_spec.rb +2 -2
- metadata +4 -4
- data/lib/generators/install_generator.rb +0 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c5f01e486573054202526bf5fa21c9acb04b7c1093928cc5c1f1fa42a5d04a67
|
|
4
|
+
data.tar.gz: dbe195a0ee725c658de65fd75190f38a7fe86cc74564945c75388e04de906f1c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 92812fe8790d454531b66618f6f142f69dec5a3e46e75bdb7e22bf914c10c9e23739709a5e300a750882b7c806edb604da5eb023332a6133e8de332beb6963b5
|
|
7
|
+
data.tar.gz: f2109fed76e5508ff160f87109d5c4fefa011233257248b8dcd4ca678b5594e27ef85d8883c9a08c0583485748a769299c02bc09e8cd86ca47250530cbc95fee
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -39,26 +39,32 @@ Using RubyGems:
|
|
|
39
39
|
gem install data-migration
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
### Gemfile
|
|
43
43
|
|
|
44
44
|
```ruby
|
|
45
45
|
gem "data-migration"
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
### Run data migrations
|
|
48
|
+
### Data migration tasks table
|
|
51
49
|
|
|
52
50
|
```sh
|
|
53
|
-
bin/rails
|
|
51
|
+
bin/rails g data_migration:install data_migration_tasks
|
|
54
52
|
```
|
|
55
53
|
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
56
|
### Generate data migration job
|
|
57
57
|
|
|
58
58
|
```sh
|
|
59
59
|
bin/rails g data_migration create_users
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
+
### Run data migrations
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
bin/rails db:migrate:data 20241207120000_create_users
|
|
66
|
+
```
|
|
67
|
+
|
|
62
68
|
## Configuration
|
|
63
69
|
|
|
64
70
|
### Set data migrations directory
|
data/lib/data-migration.rb
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require "rails/generators"
|
|
2
|
+
require "rails/generators/active_record"
|
|
3
|
+
require "rails/generators/active_record/migration/migration_generator"
|
|
4
|
+
|
|
5
|
+
module DataMigration
|
|
6
|
+
module Generators
|
|
7
|
+
class InstallGenerator < ActiveRecord::Generators::MigrationGenerator
|
|
8
|
+
source_root File.expand_path("../templates", __FILE__)
|
|
9
|
+
|
|
10
|
+
attr_reader :table_exists, :table_columns
|
|
11
|
+
def create_migration_file
|
|
12
|
+
if ActiveRecord::Base.connection.table_exists?(name)
|
|
13
|
+
puts "\e[31mWARNING: Table `#{name}` already exists\e[0m"
|
|
14
|
+
@table_exists = true
|
|
15
|
+
@table_columns = ActiveRecord::Base.connection.columns(name)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
set_local_assigns!
|
|
19
|
+
validate_file_name!
|
|
20
|
+
migration_template "install_#{name}.rb", "#{DataMigration.config.schema_migrations_path}/install_#{file_name}.rb"
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def migration_parent
|
|
24
|
+
"ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
data/lib/generators/{templates → data_migration/templates}/install_data_migration_tasks.rb.tt
RENAMED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
class <%= migration_class_name %> < <%= migration_parent %>
|
|
2
|
+
<% if table_exists %>
|
|
3
|
+
# Current columns: "<%= table_columns.map(&:name).join("\", \"") %>"
|
|
4
|
+
<% end %>
|
|
5
|
+
|
|
2
6
|
def self.up
|
|
3
7
|
create_table :<%= DataMigration.tasks_table_name %>, force: true do |t|
|
|
4
8
|
t.string "name", null: false
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
require "spec_helper"
|
|
2
2
|
|
|
3
|
-
require "generators/install_generator"
|
|
3
|
+
require "generators/data_migration/install_generator"
|
|
4
4
|
|
|
5
|
-
describe InstallGenerator, type: :generator do
|
|
5
|
+
describe DataMigration::Generators::InstallGenerator, type: :generator do
|
|
6
6
|
include FileUtils
|
|
7
7
|
|
|
8
8
|
subject(:generator) { described_class.start params }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: data-migration
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrei Makarov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-12-
|
|
11
|
+
date: 2024-12-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -180,10 +180,10 @@ files:
|
|
|
180
180
|
- lib/data_migration/config.rb
|
|
181
181
|
- lib/data_migration/job.rb
|
|
182
182
|
- lib/data_migration/task.rb
|
|
183
|
+
- lib/generators/data_migration/install_generator.rb
|
|
184
|
+
- lib/generators/data_migration/templates/install_data_migration_tasks.rb.tt
|
|
183
185
|
- lib/generators/data_migration_generator.rb
|
|
184
|
-
- lib/generators/install_generator.rb
|
|
185
186
|
- lib/generators/templates/data_migration.rb.tt
|
|
186
|
-
- lib/generators/templates/install_data_migration_tasks.rb.tt
|
|
187
187
|
- spec/data_migration/config_spec.rb
|
|
188
188
|
- spec/data_migration/job_spec.rb
|
|
189
189
|
- spec/data_migration/task_spec.rb
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
require "rails/generators"
|
|
2
|
-
require "rails/generators/active_record"
|
|
3
|
-
require "rails/generators/active_record/migration/migration_generator"
|
|
4
|
-
|
|
5
|
-
class InstallGenerator < ActiveRecord::Generators::MigrationGenerator
|
|
6
|
-
source_root File.expand_path("../templates", __FILE__)
|
|
7
|
-
|
|
8
|
-
def create_migration_file
|
|
9
|
-
set_local_assigns!
|
|
10
|
-
validate_file_name!
|
|
11
|
-
migration_template "install_#{name}.rb", "#{DataMigration.config.schema_migrations_path}/#{file_name}.rb"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def migration_parent
|
|
15
|
-
"ActiveRecord::Migration[#{ActiveRecord::Migration.current_version}]"
|
|
16
|
-
end
|
|
17
|
-
end
|