dynamic_migrations 3.6.11 → 3.6.13

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: f31ee44c0dced52756c6f563ea8b321b0cbce5d6cd53f7ef7fb796efb5f7e58a
4
- data.tar.gz: f3151d84b1574d421d9c122310ce3394f98d4920aa571dc168de2858c91cdc7a
3
+ metadata.gz: 9ecc60f6bad6a321991985b6e7cfd024486ec79caa1b49b143caf3c844d28275
4
+ data.tar.gz: b16c5bb261de851a877d4b6e6067b2767badf82f895ce25e0816286d11ef83e8
5
5
  SHA512:
6
- metadata.gz: c090b0758ed52dd8b21a5327e83f6d41f23afc5ad3c53bf265166a85245738c37c5188b15dfed27bb890b36db62896590c7dea3fc8d80e130120d43bd548e560
7
- data.tar.gz: 74eb4c9ad0d25987f588ccdc0239e460bbc7169a82cec5fc7c837077e822570ac11d61ae7a136a27f49a5c7093c2e91100d22dd3247729bbbb63fd9c316e19f2
6
+ metadata.gz: 182c7cbc69b0ba406147e7e0d972887ec44d8171e00eb75b92a531702cd4abfaf18ab9c7e319ac7771f25696968582b56cf18fe275652f71f2426d1a1b6e363a
7
+ data.tar.gz: b0f0de5ca2c65380c25c80fe23c53942a576e4f4c9e7e3984d56dbf67d9afac6e2b16153f1d70012b7f0fb1dfd50b1b13e2cdebcf1c0333ea2cd86f90ded33df
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [3.6.13](https://github.com/craigulliott/dynamic_migrations/compare/v3.6.12...v3.6.13) (2023-09-14)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * providing foreign_schema_name to create foreign key constraint, and only providing non default arguments ([e45d499](https://github.com/craigulliott/dynamic_migrations/commit/e45d4994a9b947f0d626bdd4b0e2a36136412370))
9
+
10
+ ## [3.6.12](https://github.com/craigulliott/dynamic_migrations/compare/v3.6.11...v3.6.12) (2023-09-13)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * removing unused argument for create_function migrator ([bdb2ad5](https://github.com/craigulliott/dynamic_migrations/commit/bdb2ad58ff0c5aa3520eb38ab0d16b823014ce6e))
16
+
3
17
  ## [3.6.11](https://github.com/craigulliott/dynamic_migrations/compare/v3.6.10...v3.6.11) (2023-09-13)
4
18
 
5
19
 
@@ -11,7 +11,7 @@ module DynamicMigrations
11
11
  # because rails migrations don't support composite (multiple column) foreign keys
12
12
  # column_names and foreign_column_names can be a single column name or
13
13
  # an array of column names
14
- def add_foreign_key table_name, column_names, foreign_schema_name, foreign_table_name, foreign_column_names, name:, initially_deferred: false, deferrable: false, on_delete: :no_action, on_update: :no_action, comment: nil
14
+ def add_foreign_key table_name, column_names, foreign_table_name, foreign_column_names, name:, foreign_schema: nil, initially_deferred: false, deferrable: false, on_delete: :no_action, on_update: :no_action, comment: nil
15
15
  if initially_deferred == true && deferrable == false
16
16
  raise DeferrableOptionsError, "A constraint can only be initially deferred if it is also deferrable"
17
17
  end
@@ -19,6 +19,8 @@ module DynamicMigrations
19
19
  # convert single column names into arrays, this simplifies the logic below
20
20
  column_names = column_names.is_a?(Array) ? column_names : [column_names]
21
21
  foreign_column_names = foreign_column_names.is_a?(Array) ? foreign_column_names : [foreign_column_names]
22
+ # default to the current schema
23
+ foreign_schema_name = foreign_schema.nil? ? schema_name : foreign_schema
22
24
 
23
25
  # allow it to be deferred, and defer it by default
24
26
  deferrable_sql = if initially_deferred
@@ -9,7 +9,7 @@ module DynamicMigrations
9
9
  end
10
10
 
11
11
  # create a postgres function
12
- def create_function table_name, function_name, comment: nil, &block
12
+ def create_function function_name, comment: nil, &block
13
13
  unless block
14
14
  raise MissingFunctionBlockError, "create_function requires a block"
15
15
  end
@@ -30,7 +30,7 @@ module DynamicMigrations
30
30
  end
31
31
 
32
32
  # update a postgres function
33
- def update_function table_name, function_name, comment: nil, &block
33
+ def update_function function_name, comment: nil, &block
34
34
  unless block
35
35
  raise MissingFunctionBlockError, "create_function requires a block"
36
36
  end
@@ -12,13 +12,26 @@ module DynamicMigrations
12
12
  f_c_names = foreign_key_constraint.foreign_column_names
13
13
  foreign_column_names = (f_c_names.count == 1) ? ":#{f_c_names.first}" : "[:#{f_c_names.join(", :")}]"
14
14
 
15
- options = {
16
- name: ":#{foreign_key_constraint.name}",
17
- initially_deferred: foreign_key_constraint.initially_deferred,
18
- deferrable: foreign_key_constraint.deferrable,
19
- on_delete: ":#{foreign_key_constraint.on_delete}",
20
- on_update: ":#{foreign_key_constraint.on_update}"
21
- }
15
+ options = {}
16
+ options[:name] = ":#{foreign_key_constraint.name}"
17
+
18
+ # only provide values if they are different from the defaults
19
+ unless foreign_key_constraint.initially_deferred == false
20
+ options[:initially_deferred] = foreign_key_constraint.initially_deferred
21
+ end
22
+ unless foreign_key_constraint.deferrable == false
23
+ options[:deferrable] = foreign_key_constraint.deferrable
24
+ end
25
+ unless foreign_key_constraint.on_delete == :no_action
26
+ options[:on_delete] = ":#{foreign_key_constraint.on_delete}"
27
+ end
28
+ unless foreign_key_constraint.on_update == :no_action
29
+ options[:on_update] = ":#{foreign_key_constraint.on_update}"
30
+ end
31
+ unless foreign_key_constraint.table.schema.name == foreign_key_constraint.foreign_schema_name
32
+ options[:foreign_schema] = ":#{foreign_key_constraint.foreign_schema_name}"
33
+ end
34
+
22
35
  unless foreign_key_constraint.description.nil?
23
36
  options[:comment] = <<~RUBY
24
37
  <<~COMMENT
@@ -27,6 +40,10 @@ module DynamicMigrations
27
40
  RUBY
28
41
  end
29
42
 
43
+ if foreign_key_constraint.table.schema != foreign_key_constraint.foreign_table.schema
44
+ options[:foreign_schema] = foreign_key_constraint.foreign_table.schema.name.to_s
45
+ end
46
+
30
47
  options_syntax = options.map { |k, v| "#{k}: #{v}" }.join(", ")
31
48
 
32
49
  add_fragment schema: foreign_key_constraint.table.schema,
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DynamicMigrations
4
- VERSION = "3.6.11"
4
+ VERSION = "3.6.13"
5
5
  end
@@ -5,7 +5,7 @@ module DynamicMigrations
5
5
  module ActiveRecord
6
6
  module Migrators
7
7
  module ForeignKeyConstraint
8
- def add_foreign_key: (Symbol table_name, Array[Symbol] column_names, Symbol foreign_schema_name, Symbol foreign_table_name, Array[Symbol] foreign_column_names, name: Symbol, ?initially_deferred: bool, ?deferrable: bool, ?on_delete: Symbol, ?on_update: Symbol, ?comment: String?) -> void
8
+ def add_foreign_key: (Symbol table_name, Array[Symbol] column_names, Symbol foreign_table_name, Array[Symbol] foreign_column_names, name: Symbol, ?foreign_schema: Symbol?, ?initially_deferred: bool, ?deferrable: bool, ?on_delete: Symbol, ?on_update: Symbol, ?comment: String?) -> void
9
9
  def remove_foreign_key: (Symbol table_name, Symbol name) -> void
10
10
  def set_foreign_key_comment: (Symbol table_name, Symbol foreign_key_name, String comment) -> void
11
11
  def remove_foreign_key_comment: (Symbol table_name, Symbol foreign_key_name) -> void
@@ -5,8 +5,8 @@ module DynamicMigrations
5
5
  module ActiveRecord
6
6
  module Migrators
7
7
  module Function
8
- def create_function: (Symbol table_name, Symbol function_name, ?comment: String?) -> void
9
- def update_function: (Symbol table_name, Symbol function_name, ?comment: String?) -> void
8
+ def create_function: (Symbol function_name, ?comment: String?) -> void
9
+ def update_function: (Symbol function_name, ?comment: String?) -> void
10
10
  def drop_function: (Symbol function_name) -> void
11
11
  def set_function_comment: (Symbol function_name, String comment) -> void
12
12
  def remove_function_comment: (Symbol function_name) -> void
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_migrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.11
4
+ version: 3.6.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Ulliott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-13 00:00:00.000000000 Z
11
+ date: 2023-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg