module SchemaComments::ConnectionAdapters::ConcreteAdapter
Public Instance Methods
add_column(table_name, column_name, type, options = {})
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 118 def add_column(table_name, column_name, type, options = {}) comment = options.delete(:comment) result = super(table_name, column_name, type, options) column_comment(table_name, column_name, comment) if comment result end
change_column(table_name, column_name, type, options = {})
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 125 def change_column(table_name, column_name, type, options = {}) comment = options.delete(:comment) @ignore_drop_table = true result = super(table_name, column_name, type, options) column_comment(table_name, column_name, comment) if comment result ensure @ignore_drop_table = false end
create_table(table_name, options = {}) { |t| ... }
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 74 def create_table(table_name, options = {}, &block) table_def = nil result = super(table_name, options) do |t| table_def = t yield(t) end table_comment(table_name, options[:comment]) unless options[:comment].blank? table_def.columns.each do |col| column_comment(table_name, col.name, col.comment) unless col.comment.blank? end result end
drop_table(table_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 87 def drop_table(table_name, *args, &block) result = super(table_name, *args) delete_schema_comments(table_name) unless @ignore_drop_table result end
remove_column(table_name, *column_names)
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 99 def remove_column(table_name, *column_names) # sqlite3ではremove_columnがないので、以下のフローでスキーマ更新します。 # 1. CREATE TEMPORARY TABLE "altered_xxxxxx" (・・・) # 2. PRAGMA index_list("xxxxxx") # 3. DROP TABLE "xxxxxx" # 4. CREATE TABLE "xxxxxx" # 5. PRAGMA index_list("altered_xxxxxx") # 6. DROP TABLE "altered_xxxxxx" # # このdrop tableの際に、schema_commentsを変更しないようにフラグを立てています。 @ignore_drop_table = true super(table_name, *column_names) column_names.each do |column_name| delete_schema_comments(table_name, column_name) end ensure @ignore_drop_table = false end
rename_column(table_name, column_name, new_column_name, options = {})
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 135 def rename_column(table_name, column_name, new_column_name, options = {}) comment = options.delete(:comment) result = super(table_name, column_name, new_column_name) update_schema_comments_column_name(table_name, column_name, new_column_name) column_comment(table_name, new_column_name, comment) if comment result end
rename_table(table_name, new_name)
click to toggle source
Calls superclass method
# File lib/schema_comments/connection_adapters.rb, line 93 def rename_table(table_name, new_name) result = super(table_name, new_name) update_schema_comments_table_name(table_name, new_name) result end