Rails Миграции, потому что они направлены на схему таблиц и полей, а не на полное представление базы данных, включая хранимые процедуры, функции, начальные данные.
Когда вы запускаете rake db: setup, это создаст базу данныхзагрузите схему, а затем загрузите начальные данные.
Несколько решений для рассмотрения:
Вариант 1: создайте собственную задачу rake, которая выполняет эти миграции независимо от Rails Migration up /вниз.Rails Migrations - это просто обычные классы, и вы можете использовать их по своему усмотрению.Например:
rake db:create_sequence
Вариант 2: запустить конкретную миграцию после загрузки схемы следующим образом:
rake db:setup
rake db:migrate:up VERSION=20080906120000
Вариант 3: создать свою последовательность в качестве начальных данных, поскольку она по сути обеспечиваетданные (вместо того, чтобы изменять схему).
db/seeds.rb
Вариант 4 и мои личные предпочтения: выполнить миграцию до известного хорошего момента, включая вашу последовательность, и сохранить эту пустую базу данных.Измените rake db: setup, чтобы клонировать эту пустую базу данных.Это немного сложнее и жертвует некоторыми возможностями - все миграции должны быть обратимыми, миграция работает на базе нескольких поставщиков баз данных и т. Д. По моему опыту, это хороший компромисс.Например:
rake db:fresh #=> clones the blank database, which you store in version control