data_migrate 8.1.1 → 8.2.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: 7f6afd16bfaf1425e8e8fa9b7916df46f6b2d826fb572c2adeade0db17ec9e03
4
- data.tar.gz: 80cc32ea79bfb83913ea24c647d8fd1a12fb2956756d33ad9f31eef3ebeca2db
3
+ metadata.gz: ba5ee2c5d78ddb60b5b23067b5103c4f1dba6d1249984dfe2489382cc9bc9f1a
4
+ data.tar.gz: d6ed21a477ffe26c2705f9582a4f370e1a20807297200ba62988ada34c0f42fc
5
5
  SHA512:
6
- metadata.gz: 57a9d5e94a753924506ad0a79896b859e53073f348c222972988510a942dc958e61b3b1e6859b51f31f3374f2d550b82710e7b579509894c33e1e045bd9a0ecc
7
- data.tar.gz: 6ab5ceea16179d7f3e42b6ce9aa0028cd214c907139e3938e503ed21e35ad00c16a5a409dfe6b9032d06f689ce37ea36e14543238d9a76147f2b0dd5b5421700
6
+ metadata.gz: d31827b46b9def6d3be01606f027e040cc340e3c4aebea687980f2eefa4ca86acd92f9fb495c6b25578c69f8cfba78aa8ac6863b276945450e43323ff2458fec
7
+ data.tar.gz: eec842d6f96134abea3945d27e4d366f8f093ac0cfe14ff7f4931b61c2a872cd21fe4c19e7ccec54dedba470b224bf0b9b199f3c4941cad0d2b896de5211b8ac
data/Changelog.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 8.2.0
4
+
5
+ Delegate to anonymous subclass of AR::SchemaMigration [foxondo](https://github.com/foxondo)
6
+
3
7
  ## 8.1.1
4
8
 
5
9
  Revert 8.1.0 changes
data/README.md CHANGED
@@ -132,6 +132,27 @@ require 'capistrano/data_migrate'
132
132
 
133
133
  From now on capistrano will run `rake db:migrate:with_data` in every deploy.
134
134
 
135
+ ## Rails Engines support
136
+
137
+ This gem also has a initial support for adding data migrations inside Rails engines.
138
+ Inside the Engine's class initializer (the one that inherits from `Rails::Engine`, usually inside `engines/ENGINE_NAME/lib/engine.rb`) you need to add something like this:
139
+
140
+
141
+ ```ruby
142
+ module EngineName
143
+ class Engine < ::Rails::Engine
144
+ initializer :engine_name do |app|
145
+ ::DataMigrate.configure do |data_migrate|
146
+ default_path = ::DataMigrate::Config.new.data_migrations_path
147
+ data_migrate.data_migrations_path = [default_path, root.join('db', 'data')]
148
+ end
149
+ end
150
+ end
151
+ end
152
+ ```
153
+
154
+ Then, in the Engine's `db/data` folder, you can add data migrations and run them as usual.
155
+
135
156
  ### Contributing
136
157
 
137
158
  ## Testing
@@ -1,15 +1,14 @@
1
1
  module DataMigrate
2
- class DataSchemaMigration < ::ActiveRecord::SchemaMigration
3
-
2
+ class DataSchemaMigration
4
3
  class << self
5
- def table_name
6
- ActiveRecord::Base.table_name_prefix + 'data_migrations' + ActiveRecord::Base.table_name_suffix
7
- end
4
+ delegate :table_name, :primary_key, :create_table, :normalized_versions, :create, :create!, :table_exists?, :where, to: :instance
8
5
 
9
- def primary_key
10
- "version"
6
+ def instance
7
+ @instance ||= Class.new(::ActiveRecord::SchemaMigration) do
8
+ define_singleton_method(:table_name) { ActiveRecord::Base.table_name_prefix + 'data_migrations' + ActiveRecord::Base.table_name_suffix }
9
+ define_singleton_method(:primary_key) { "version" }
10
+ end
11
11
  end
12
12
  end
13
13
  end
14
14
  end
15
-
@@ -1,3 +1,3 @@
1
1
  module DataMigrate
2
- VERSION = "8.1.1".freeze
2
+ VERSION = "8.2.0".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_migrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.1.1
4
+ version: 8.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew J Vargo
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-08-02 00:00:00.000000000 Z
13
+ date: 2022-10-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord