Rails Migrations: загрузка данных по умолчанию - PullRequest
6 голосов
/ 08 августа 2009

Лучший способ загрузить начальные данные? У меня есть таблица Author, которая тесно связана с таблицей Users. У меня также есть миграции, чтобы изменить обе эти таблицы. Я хочу добавить пользователя-администратора по умолчанию, но я хочу убедиться, что обе таблицы созданы и все миграции выполнены для этих таблиц до того, как моя миграция CreateDefaultAdmin (или что-то еще) выполняется. Есть ли лучшие практики для этого? Извините, если об этом уже спрашивали.

Ответы [ 4 ]

11 голосов
/ 08 августа 2009

Ваши варианты:

  1. Используйте миграции, как описано здесь: http://railspikes.com/2008/2/1/loading-seed-data
  2. Используйте сторонние дополнения, такие как: seed-fu или db-populate
  3. Используйте приспособления, которые описаны в статье о шипах рельсов.
  4. Дождитесь рельсов 3 и используйте новые seed.rb: http://github.com/rails/rails/commit/4932f7b38f72104819022abca0c952ba6f9888cb

Лично я использую модифицированный yaml-db . Мне нравится встраивать все мои начальные данные в мою среду разработки и сохранять их в моем хранилище. Когда я запускаю их в работу, я могу загрузить их с помощью задачи rake.

2 голосов
/ 08 августа 2009

Последняя (пограничная?) Версия Rails включает файл db / seed.rb, в который вы можете поместить код для создания записей в вашей базе данных. До тех пор миграция - это путь, но они могут быть грязными, когда схема постоянно меняется (и это весь смысл файлов миграции).

0 голосов
/ 12 августа 2009

Попробуйте Factory Girl в качестве замены светильников для тесно связанных моделей:

http://www.thoughtbot.com/projects/factory_girl

0 голосов
/ 08 августа 2009

вы не можете просто создать отдельные миграции и запустить их отдельно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...