add_column :table_name, :column_name, :decimal, default: 0, precision: 15, scale: 10
add_column :table_name, :column_name, :jsonb, default: {}, null: false
add_column :table_name, :column_name, :string, array: true, default: []
add_foreign_key :table_name, :table_name
add_foreign_key :table_name, :table_name, column: :column_name, name: :index_table_name_on_column_name
add_index :table_name, %i[column_name_1 column_name_2], order: { column_name: :desc }, unique: true, where: 'column_name IS NOT NULL', name: :index_name
add_reference :table_name, :custom_name, foreign_key: { to_table: :table_name }, index: true, null: false
add_reference :table_name, :model_name, foreign_key: true, index: true, null: false
add_timestamps :table_name
change_column :table_name, :column_name, :new_type
change_column :table_name, :column_name, :string, limit: 9
change_column :table_name, :column_name, 'integer USING CAST("column_name" AS integer)'
change_column_default :table_name, :locked, true # nil to drop default
change_column_null :table_name, :column_name, false
drop_table :table_name
enable_extension 'citext'
execute 'update users set confirmed_at = now()'
remove_column :table_name, :column_name, :string
remove_foreign_key :table_name, name: :foreign_key_name
remove_index :table_name, %i[column_name_1 column_name_2]
remove_index :table_name, name: :index_name
remove_reference :table_name, :model_name
rename_column :table_name, :old_column, :new_column
rename_table :table_name, :new_table_name
t.timestamps
t.references :model_name, foreign_key: true, index: true, null: false
t.references :model_name, foreign_key: true, index: { name: :index_table_field, unique: true }, null: false
t.references :custom_name, foreign_key: { to_table: :table_name }, index: true, null: false
t.references :ticketable, polymorphic: true, index: true
# atomic add fields
change_table :table_name, bulk: true do |t|
t.index :useful_foreign_key
t.string :summary
end
Last active
January 5, 2021 18:22
-
-
Save wbotelhos/53e16023dbfde680f7bec93ecaf2267e to your computer and use it in GitHub Desktop.
Rails Schema Migration Cheat Sheet
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment