Ответ 1
Да, он выполняет миграции, которые не выполнялись в порядке префикса. В более ранних версиях рельсов, возможно, 2.1
или 2.2
, они были пронумерованы, начиная с 01
, но они переключились на отметки времени.
Существует таблица, в которой отслеживается, какие миграции выполнялись. Предполагается, что несколько разработчиков добавили миграции и позже проверили их в управлении версиями. Таким образом, может произойти миграция, которая не была выполнена, но пронумерована до выполнения миграции с наименьшей нумерацией.
Если вы измените последовательность миграции, (и у меня есть), лучше сначала спуститься до всех перенастроек, которые вы перестраиваете. Используйте параметр VERSION
с db:migrate
. Если самая высокая нумерованная миграция, которую вы хотите сохранить (не запускать вниз), равна 20120318143249
, вызовите ее таким образом.
rake db:migrate VERSION=20120318143249
Я часто бегу вниз по миграции и повторно запускаю его, пока я не получу детали миграции к моему удовлетворению. Иногда я переупорядочиваю их, когда хочу работать над одним из них, и я хочу, чтобы это было последним.