ridgepole 3.1.1 → 3.1.2

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: 90db85660b9c1b91946bec50b7af82e03d3b686a3270ba4c12f7253dd31ecd40
4
- data.tar.gz: '09660a78f0e35155b58423d737391b531405aa895edab86bcc8f6f4213461fef'
3
+ metadata.gz: dda1a996982cb5d8b365f150166e2de5a71da139e881e0997a7d1cbe90e742cf
4
+ data.tar.gz: e81e61c580566fc1df3a2de2e7e7473a713aa2f7cdc64b573876c5eff8890987
5
5
  SHA512:
6
- metadata.gz: 4e86c295eaafec04bcd2235932312e74d327abb7db2f5be519da092c87a585ade3c9ce7887720426b76ad532ec7e467e4cebd1f570e9a8cb6b0ff3dbcba7f13e
7
- data.tar.gz: 55dc8d759ec3d788fc07f24ca15c48ca323166bf838f6ebe8ae13383192c5c15577da07d2f431f30c5c8571dfed24fa90dd62aa72cd20afff7abc40af0bca4ba
6
+ metadata.gz: 13ae80c21973f9e0901cd76e084fdf564267f65de8170e72cc3feae412d95619a532ca16147ecaa65275ad41f82a9ec31b93b38d499c381e7fb43fe09ec5710b
7
+ data.tar.gz: f19b7cec7f794af44aa5e5130d33088f033621a0344787d21a2d48362c954d49d8cd56be5b1c3da599eee35648f572bb6940bc44ae42085e4cdc45ebcca3216d
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## 3.0
4
4
 
5
+ ### 3.1.2 (2025/11/03)
6
+
7
+ - Normalize foreign key columns. [pull#607](https://github.com/ridgepole/ridgepole/pull/607)
8
+
5
9
  ### 3.1.1 (2025/10/31)
6
10
 
7
11
  - Add `--disable-sort-columns` option [pull#601](https://github.com/ridgepole/ridgepole/pull/601)
@@ -465,6 +465,23 @@ module Ridgepole
465
465
  to = (to || {}).dup
466
466
  foreign_keys_delta = {}
467
467
 
468
+ # Converts conventionally named (i.e., the combination of a singular table name with `_id` suffix)
469
+ # foreign key column names to void.
470
+ #
471
+ # Example:
472
+ # in `foreign_key_name_or_tables`, it converts the foreign key column name to nil
473
+ # - ["my_table", "referenced_table", "referenced_table_id"] => ["my_table", "referenced_table", nil]
474
+ # in `to_attrs`, it drops `column` option value
475
+ # - {to_table: "referenced_table", options: {column: "referenced_table_id"}} => {to_table: "referenced_table", options: {}}
476
+ to = to.to_h do |foreign_key_name_or_tables, to_attrs|
477
+ foreign_key_column_name = "#{foreign_key_name_or_tables[1].singularize}_id"
478
+
479
+ foreign_key_name_or_tables[2] = nil if foreign_key_column_name == foreign_key_name_or_tables[2]
480
+ to_attrs[:options].delete(:column) if to_attrs[:options][:column] == foreign_key_column_name
481
+
482
+ [foreign_key_name_or_tables, to_attrs]
483
+ end
484
+
468
485
  to.each do |foreign_key_name_or_tables, to_attrs|
469
486
  ignore_fk = to_attrs.fetch(:options, {}).delete(:ignore)
470
487
  from_attrs = from.delete(foreign_key_name_or_tables)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ridgepole
4
- VERSION = '3.1.1'
4
+ VERSION = '3.1.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridgepole
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara