# File lib/online_migrations/schema_cache.rb, line 6 def primary_keys(table_name) if renamed_tables.key?(table_name) super(renamed_tables[table_name]) elsif renamed_columns.key?(table_name) super(column_rename_table(table_name)) else super end end
module OnlineMigrations::SchemaCache
@private
Public Instance Methods
clear!()
click to toggle source
Calls superclass method
# File lib/online_migrations/schema_cache.rb, line 50 def clear! super clear_renames_cache! end
clear_data_source_cache!(name)
click to toggle source
Calls superclass method
# File lib/online_migrations/schema_cache.rb, line 55 def clear_data_source_cache!(name) if renamed_tables.key?(name) super(renamed_tables[name]) end if renamed_columns.key?(name) super(column_rename_table(name)) end super(name) clear_renames_cache! end
columns(table_name)
click to toggle source
Calls superclass method
# File lib/online_migrations/schema_cache.rb, line 16 def columns(table_name) if renamed_tables.key?(table_name) super(renamed_tables[table_name]) elsif renamed_columns.key?(table_name) columns = super(column_rename_table(table_name)) old_column_name, new_column_name = renamed_columns[table_name].first.to_a old_column = columns.find { |column| column.name == old_column_name } new_column = old_column.dup # ActiveRecord defines only reader for :name new_column.instance_variable_set(:@name, new_column_name) # Correspond to the ActiveRecord freezing of each column columns << new_column.freeze else super.reject { |column| column.name.end_with?("_for_type_change") } end end
indexes(table_name)
click to toggle source
Calls superclass method
# File lib/online_migrations/schema_cache.rb, line 37 def indexes(table_name) # Available only in Active Record 6.0+ return if !defined?(super) if renamed_tables.key?(table_name) super(renamed_tables[table_name]) elsif renamed_columns.key?(table_name) super(column_rename_table(table_name)) else super end end
primary_keys(table_name)
click to toggle source
Calls superclass method
Private Instance Methods
clear_renames_cache!()
click to toggle source
# File lib/online_migrations/schema_cache.rb, line 91 def clear_renames_cache! @renamed_columns = nil @renamed_tables = nil end
column_rename_table(table_name)
click to toggle source
# File lib/online_migrations/schema_cache.rb, line 87 def column_rename_table(table_name) "#{table_name}_column_rename" end
renamed_columns()
click to toggle source
# File lib/online_migrations/schema_cache.rb, line 78 def renamed_columns @renamed_columns ||= begin column_renames = OnlineMigrations.config.column_renames column_renames.select do |table_name, _| connection.views.include?(table_name) end end end
renamed_tables()
click to toggle source
# File lib/online_migrations/schema_cache.rb, line 69 def renamed_tables @renamed_tables ||= begin table_renames = OnlineMigrations.config.table_renames table_renames.select do |old_name, _| connection.views.include?(old_name) end end end