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 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