data-migration 1.2.0 → 1.3.0

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: 9a8f110139404aa9a93001f7d7d62df44dfa39ed17c6467c3042b71071f0f5a9
4
- data.tar.gz: 17ea84c1d597d6ba5907f0841bee35cf231225f9ac6febfa0dfa4b6c697105d3
3
+ metadata.gz: c5f01e486573054202526bf5fa21c9acb04b7c1093928cc5c1f1fa42a5d04a67
4
+ data.tar.gz: dbe195a0ee725c658de65fd75190f38a7fe86cc74564945c75388e04de906f1c
5
5
  SHA512:
6
- metadata.gz: 2cb6a04608ff5fa007f3bc3e5e6fd819413d73b9041ee8ec542de029719d6c089706528e3ec72e9d0442d75596709cb2646f004c00bce6a9100a063be2e91eab
7
- data.tar.gz: 53b024625cc45959ac7cc94c5ccb5bf22f1ff463a04cfea4f847a43292b688092aaf9f3e757193fd15c17c47f2a9539b208be3153e043cca313f3b78682ff36c
6
+ metadata.gz: 92812fe8790d454531b66618f6f142f69dec5a3e46e75bdb7e22bf914c10c9e23739709a5e300a750882b7c806edb604da5eb023332a6133e8de332beb6963b5
7
+ data.tar.gz: f2109fed76e5508ff160f87109d5c4fefa011233257248b8dcd4ca678b5594e27ef85d8883c9a08c0583485748a769299c02bc09e8cd86ca47250530cbc95fee
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.3.0
4
+
5
+ - Fix data migration tasks table generator
6
+ - Update README with better examples
7
+
3
8
  ## 1.2.0
4
9
 
5
10
  - Wrap Task.status enum with ActiveRecord version check
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- data-migration (1.2.0)
4
+ data-migration (1.3.0)
5
5
  activejob (> 5)
6
6
  activerecord (> 5)
7
7
  activesupport (> 5)
data/README.md CHANGED
@@ -39,26 +39,32 @@ Using RubyGems:
39
39
  gem install data-migration
40
40
  ```
41
41
 
42
- ## Gemfile
42
+ ### Gemfile
43
43
 
44
44
  ```ruby
45
45
  gem "data-migration"
46
46
  ```
47
47
 
48
- ## Usage
49
-
50
- ### Run data migrations
48
+ ### Data migration tasks table
51
49
 
52
50
  ```sh
53
- bin/rails db:migrate:data 20241207120000_create_users
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
@@ -3,7 +3,7 @@ require "data_migration/job"
3
3
  require "data_migration/task"
4
4
 
5
5
  module DataMigration
6
- VERSION = "1.2.0".freeze
6
+ VERSION = "1.3.0".freeze
7
7
 
8
8
  module_function
9
9
 
@@ -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
@@ -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.2.0
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-10 00:00:00.000000000 Z
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