Module: MysqlOnlineMigrations::Columns
- Included in:
- MysqlOnlineMigrations
- Defined in:
- lib/mysql_online_migrations/columns.rb
Instance Method Summary collapse
- #add_column(table_name, column_name, type, options = {}) ⇒ Object
- #add_timestamps(table_name, options = {}) ⇒ Object
- #change_column(table_name, column_name, type, options = {}) ⇒ Object
- #remove_column(table_name, *column_names) ⇒ Object
- #remove_timestamps(table_name, options = {}) ⇒ Object
- #rename_column(table_name, column_name, new_column_name, options = {}) ⇒ Object
Instance Method Details
#add_column(table_name, column_name, type, options = {}) ⇒ Object
3 4 5 6 |
# File 'lib/mysql_online_migrations/columns.rb', line 3 def add_column(table_name, column_name, type, = {}) lock, = () execute("ALTER TABLE #{quote_table_name(table_name)} #{add_column_sql(table_name, column_name, type, )} #{lock_statement(lock, true)}") end |
#add_timestamps(table_name, options = {}) ⇒ Object
8 9 10 11 |
# File 'lib/mysql_online_migrations/columns.rb', line 8 def (table_name, = {}) add_column table_name, :created_at, :datetime, add_column table_name, :updated_at, :datetime, end |
#change_column(table_name, column_name, type, options = {}) ⇒ Object
13 14 15 16 |
# File 'lib/mysql_online_migrations/columns.rb', line 13 def change_column(table_name, column_name, type, = {}) lock, = () execute("ALTER TABLE #{quote_table_name(table_name)} #{change_column_sql(table_name, column_name, type, )} #{lock_statement(lock, true)}") end |
#remove_column(table_name, *column_names) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/mysql_online_migrations/columns.rb', line 23 def remove_column(table_name, *column_names) if column_names.flatten! = 'Passing array to remove_columns is deprecated, please use ' + 'multiple arguments, like: `remove_columns(:posts, :foo, :bar)`' ActiveSupport::Deprecation.warn , caller end lock, = if column_names.last.is_a? Hash = column_names.last column_names = column_names[0..-2] () else [false, {}] end columns_for_remove(table_name, *column_names).each do |column_name| execute "ALTER TABLE #{quote_table_name(table_name)} DROP #{column_name} #{lock_statement(lock, true)}" end end |
#remove_timestamps(table_name, options = {}) ⇒ Object
43 44 45 46 |
# File 'lib/mysql_online_migrations/columns.rb', line 43 def (table_name, = {}) remove_column table_name, :updated_at, remove_column table_name, :created_at, end |
#rename_column(table_name, column_name, new_column_name, options = {}) ⇒ Object
18 19 20 21 |
# File 'lib/mysql_online_migrations/columns.rb', line 18 def rename_column(table_name, column_name, new_column_name, = {}) lock, = () execute("ALTER TABLE #{quote_table_name(table_name)} #{rename_column_sql(table_name, column_name, new_column_name)} #{lock_statement(lock, true)}") end |