Да, триггеры уровня базы данных запускаются, когда данные достигают диска. Это происходит только когда коммит сделан.
Если у Вас есть свой код при управлении исходным кодом (у Вас действительно есть свой код при управлении исходным кодом, не так ли?) затем я сказал бы, что нет никакого реального вреда, если Вы признаете, что откат изменений схемы собирается потребовать или восстановления старых миграций или совершенно новых миграций. Просто убедитесь, что Вы понимаете последствия и принимаете их прежде, чем установить что-либо в камне.
Ваш текущий schema.rb может сформировать основание из новой единственной миграции, которая запустит новый набор.
Предупредите, что, если Вы переносите операции манипулирования данными в своих существующих миграциях, статических загрузках данных, например, и/или возможных последующих преобразованиях, затем они должны будут быть обработаны где-нибудь. Это - что-то, за что я споткнулся несколько раз...
Я имел бы в наличии их. Не волнуйтесь о необходимости выполнить много миграций каждый раз, новый разработчик проверяет проект. Он может всегда работать
rake db:schema:load
который намного быстрее вместо выполнения
rake db:migrate
Иногда миграции могут использовать модели, которые больше не существуют или составляют таблицы и затем позже уничтожают их, тратя впустую драгоценное процессорное время. Лучше всего скомпилировать все это в db/schema.rb и заставить Ваших разработчиков работать rake db:schema:load
Если бы все Ваши миграции делают, изменяют Ваши структуры таблиц, которые я не взволновал бы по поводу всего этого.
Следует иметь в виду, хотя это, некоторые миграции добавляют данные - у меня есть, которые отбирают базу данных с администраторской учетной записью и другими фиксированными данными - и схема не даст Вам это.
Обратите внимание, это - плохая идея сделать то, что я делаю с миграциями, так как я не использую миграции в развертывании. Так сворачивание миграций могло бы быть хорошей идеей какое-то время для перемещения тех миграций отбора данных для разделения задач граблей.
На обзоре - я повторяю точки, уже сделанные. rake db:migrate VERSION -1
[Я обвиняю недовольный новый анимированный логотип в отвлечении моего глаза далеко от текста]