Когда я имею в виду active_record_migrations в Интернете по адресу http://guides.rubyonrails.org/active_record_migrations.html а>
В следующем фрагменте:
class ExampleMigration < ActiveRecord::Migration[5.0] def up create_table :distributors do |t| t.string :zipcode end # add a CHECK constraint execute <<-SQL ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5); SQL add_column :users, :home_page_url, :string rename_column :users, :email, :email_address end def down rename_column :users, :email_address, :email remove_column :users, :home_page_url execute <<-SQL ALTER TABLE distributors DROP CONSTRAINT zipchk SQL drop_table :distributors end end
что означает следующее утверждение?
execute <<-SQL
ALTER TABLE distributors
ADD CONSTRAINT zipchk
CHECK (char_length(zipcode) = 5);
SQL
Выполняя эту миграцию с rails db:migrate
, я получаю сообщение об ошибке:
SQLite3::SQLException: near "CONSTRAINT": syntax error: ALTER TABLE distributors
ADD CONSTRAINT zipchk
CHECK (char_length(zipcode) = 5) NO INHERIT;
Дополнительные сведения см. В разделе 3.9 Использование обратимого.