online_migrations 0.7.0 → 0.7.1

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