Проблемът тук е, че адаптерът на базата данни Rails Mysql2 се задушава, когато има множество SQL команди в рамките на един и същ блок за изпълнение. Следното ще работи добре:
execute <<-SQL
ALTER TABLE properties
ADD name VARCHAR(255) NOT NULL;
SQL
execute <<-SQL
ALTER TABLE properties
ADD CONSTRAINT fk_properties_name
FOREIGN KEY (name)
REFERENCES valid_property_names (property_name);
SQL
Това поведение може да ви обърка, ако използвате PostgreSQL с Rails, тъй като адаптерът Postgres няма същото ограничение.