online_migrations 0.7.0 → 0.7.1

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: '029dd11fe1935f72c4933c081b45c972613caa252c578a005b34a902122923d6'
4
- data.tar.gz: 04d66e91c1c54f1fe19d8a743d4b6f70ef218bbe2310eb58a779602a92e72736
3
+ metadata.gz: 1194e93630871eb20ffe647cbc6b7bea10a608e5cfdb9060d7ec23f3edf7d364
4
+ data.tar.gz: 6f88e04a9556be655a4a60688e97a6f4f348bef5c00ca45db91ac8c9437d7e64
5
5
  SHA512:
6
- metadata.gz: '07865cb5068a3cba7956db786f78d0999070b9445798af0df17f9360fa9b3e5b3f19409756f383b9eb402fa8cfa0a2b2bb6ca57475267f915844a248598004b5'
7
- data.tar.gz: 0f44b2cd5bd9bad6f85c2980da2ea41ad79c100c46bdce0c4be2d9630cc239b42a0217ae07fd6f568503a42a640da6b63a2840d3b714994fce65708bd8dbf289
6
+ metadata.gz: 7d37838f47ea574fa8a2ad88db0c61ec6db681bf8081453a46d288480d5e27733a8e19e540841a73c87e3ece96eedef0bf01d4e7520a9b648b627e7da49538ff
7
+ data.tar.gz: b341891c3b81a5d4b68af360ee1ed8b7d9245685e1a3e50966c7547e3c79e132c6d8c028b733e64920587200ae95e31144d21ac2c23dcf936618a223c5e5d34f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## master (unreleased)
2
2
 
3
+ ## 0.7.1 (2023-02-22)
4
+
5
+ - Fix Schema Cache to correctly retrieve metadata from renamed tables
6
+
3
7
  ## 0.7.0 (2023-02-14)
4
8
 
5
9
  - Add support for renaming multiple columns at once in the same table
@@ -4,9 +4,9 @@ module OnlineMigrations
4
4
  # @private
5
5
  module SchemaCache
6
6
  def primary_keys(table_name)
7
- if renamed_tables.key?(table_name)
8
- super(renamed_tables[table_name])
9
- elsif renamed_columns.key?(table_name)
7
+ if (renamed_table = renamed_table?(table_name))
8
+ super(renamed_table)
9
+ elsif renamed_column?(table_name)
10
10
  super(column_rename_table(table_name))
11
11
  else
12
12
  super
@@ -14,11 +14,11 @@ module OnlineMigrations
14
14
  end
15
15
 
16
16
  def columns(table_name)
17
- if renamed_tables.key?(table_name)
18
- super(renamed_tables[table_name])
19
- elsif renamed_columns.key?(table_name)
17
+ if (renamed_table = renamed_table?(table_name))
18
+ super(renamed_table)
19
+ elsif renamed_column?(table_name)
20
20
  columns = super(column_rename_table(table_name))
21
- renamed_columns[table_name].each do |old_column_name, new_column_name|
21
+ OnlineMigrations.config.column_renames[table_name].each do |old_column_name, new_column_name|
22
22
  duplicate_column(old_column_name, new_column_name, columns)
23
23
  end
24
24
  columns
@@ -31,63 +31,45 @@ module OnlineMigrations
31
31
  # Available only in Active Record 6.0+
32
32
  return if !defined?(super)
33
33
 
34
- if renamed_tables.key?(table_name)
35
- super(renamed_tables[table_name])
36
- elsif renamed_columns.key?(table_name)
34
+ if (renamed_table = renamed_table?(table_name))
35
+ super(renamed_table)
36
+ elsif renamed_column?(table_name)
37
37
  super(column_rename_table(table_name))
38
38
  else
39
39
  super
40
40
  end
41
41
  end
42
42
 
43
- def clear!
44
- super
45
- clear_renames_cache!
46
- end
47
-
48
43
  def clear_data_source_cache!(name)
49
- if renamed_tables.key?(name)
50
- super(renamed_tables[name])
44
+ if (renamed_table = renamed_table?(name))
45
+ super(renamed_table)
51
46
  end
52
47
 
53
- if renamed_columns.key?(name)
48
+ if renamed_column?(name)
54
49
  super(column_rename_table(name))
55
50
  end
56
51
 
57
52
  super(name)
58
- clear_renames_cache!
59
53
  end
60
54
 
61
55
  private
62
- def renamed_tables
63
- @renamed_tables ||= begin
64
- table_renames = OnlineMigrations.config.table_renames
56
+ def renamed_table?(table_name)
57
+ table_renames = OnlineMigrations.config.table_renames
58
+ if table_renames.key?(table_name)
65
59
  views = connection.views
66
- table_renames.select do |old_name, _|
67
- views.include?(old_name)
68
- end
60
+ table_renames[table_name] if views.include?(table_name)
69
61
  end
70
62
  end
71
63
 
72
- def renamed_columns
73
- @renamed_columns ||= begin
74
- column_renames = OnlineMigrations.config.column_renames
75
- views = connection.views
76
- column_renames.select do |table_name, _|
77
- views.include?(table_name)
78
- end
79
- end
64
+ def renamed_column?(table_name)
65
+ column_renames = OnlineMigrations.config.column_renames
66
+ column_renames.key?(table_name) && connection.views.include?(table_name)
80
67
  end
81
68
 
82
69
  def column_rename_table(table_name)
83
70
  "#{table_name}_column_rename"
84
71
  end
85
72
 
86
- def clear_renames_cache!
87
- @renamed_columns = nil
88
- @renamed_tables = nil
89
- end
90
-
91
73
  def duplicate_column(old_column_name, new_column_name, columns)
92
74
  old_column = columns.find { |column| column.name == old_column_name }
93
75
  new_column = old_column.dup
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OnlineMigrations
4
- VERSION = "0.7.0"
4
+ VERSION = "0.7.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: online_migrations
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - fatkodima
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-02-14 00:00:00.000000000 Z
11
+ date: 2023-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord