Навигация
Усовершенствованные миграции
class CreateLineltems < ActiveRecord::Migration
def self.up
create_table :line_items do |t|
t.column :product_id, :integer, tnull => false t.column :order_id, :integer, :null => false t.column :quantity, :integer, :null => false t.column :total_price, -.decimal, :null => false, :precision => 8, :scale => 2
end
execute "alter table tine_items
add constraint fk_line_item_products
foreign key (product_id) references products(id)"
execute "alter table line_items
add constraint fk_line_item_orders
foreign key (order_id) references orders(id)"
end
def self.down
drop_table :line_items
end
end
При использовании метода execute миграция должна быть тесно прив к конкретному движку базы данных: в инструкциях SQL, передаваемых м execute в качестве параметра, используется синтаксис, присущий использу базе данных.
Метод execute воспринимает второй, необязательный, параметр, ко подставляется впереди сообщения регистрационного журнала о выполн SQL-инструкции.