O problema aqui é que o adaptador de banco de dados Rails Mysql2 engasga quando há vários comandos SQL dentro do mesmo bloco de execução. O seguinte funcionará bem:
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
Este comportamento pode confundi-lo se você estiver usando o PostgreSQL com Rails já que o adaptador Postgres não tem a mesma limitação.