Ruby on Rails: как и где мне добавить постоянные данные в мою базу данных? - PullRequest
1 голос
/ 16 марта 2011

Я довольно новичок в RoR и разрабатываю базовую модель разрешений на основе ролей для пользователей.

Однако я хочу, чтобы по умолчанию некоторые роли были в базе данных, куда мне вставить соответствующие строки в мою базу данных?

Пока что я делаю это в отдельной миграции, которая просто «создает!» Соответствующие объекты.

Однако, если я запускаю rake db:migrate && rake db:test:prepare, только моя база данных разработки заполняется данными, в то время как test-db только обновляет свою схему и остается пустой.

Итак, как / где я могу вставить такие данные по умолчанию в мои базы данных?

спасибо за любую помощь

Ответы [ 4 ]

0 голосов
/ 16 марта 2011

Я использовал seed-fu , очень прост в использовании и будет делать именно то, что вам нужно.

0 голосов
/ 16 марта 2011

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


Ни один способ не идеален, данные в миграциях не сохраняются в схеме для восстановления тестовой базы данных, но вызов двух раз одного и того же seed.rb также не годится Не забудьте сделать логику достаточно умной, чтобы не конфликтовать при повторном запуске /

0 голосов
/ 16 марта 2011

Вы можете найти мой ответ на похожий вопрос здесь: Предварительно заполнить пользователя-администратора в базе данных с плагином authlogic rails

В основном rails имеет файл db / seed.rb, в который вы можете поместить то, что вам нужно добавить по умолчанию, а затем запустить "rake db: seed", чтобы загрузить его.

0 голосов
/ 16 марта 2011

Я нашел хороший драгоценный камень, который интересен для обработки таких сценариев: seed-fu .

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