У меня есть следующая миграция. Есть ли способ запустить эти изменения за одно изменение, чем 3?Изменение нескольких столбцов с одним изменением миграции
1
A
ответ
6
Короткий ответ: нет. Метод change_column
настроен для принятия аргументов для имени таблицы, имени столбца и хэша опций. Исходный код для change_column
можно найти здесь: https://github.com/rails/rails/blob/0fe76197d2622674e1796a9a000995a7a1f6622b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
Единственная строка в методе change_column
является: execute("ALTER TABLE #{quote_table_name(table_name)} #{change_column_sql(table_name, column_name, type, options)}")
, который выполняет ALTER
сценарий на имени таблицы, переданного в качестве первого аргумента. Вы не можете передать массив таблиц/столбцов в качестве аргументов, поэтому вам нужно делать их по одному. Эта парадигма довольно типична для миграции Rails.
Любопытно, почему вас беспокоит запуск трех миграций? Это совершенно нормально для приложения Rails. –