Сбросить базу данных (очистить все), а затем заполнить базу данных


есть ли команда rake для уничтожения данных в таблицах базы данных?

Как создать сценарий db: seed для предварительного заполнения данных в мои таблицы?

5 148

5 ответов:

Я использую rake db:reset падает, а затем воссоздает базу данных и включает в себя ваши семена.rb файл. http://guides.rubyonrails.org/migrations.html#resetting-the-database

вы можете удалить все и воссоздать базу данных + семена с обоими:

  1. rake db:reset: загрузка из схемы.РБ
  2. rake db:drop db:create db:migrate db:seed: нагрузки от миграций

убедитесь, что у вас нет подключения к БД (rails server, sql client..) или БД не упадет.

- схемы.rb-это снимок текущего состояния вашей базы данных, созданный с помощью:

rake db:schema:dump

если вы не хотите сбрасывать и воссоздавать весь shebang только для перезагрузки данных, вы можете использовать MyModel.destroy_all (или delete_all) в семени.db файл для очистки таблицы перед вашим MyModel.create!(...) операторы загружают данные. Затем вы можете повторить db:seed операцию снова и снова. (Очевидно, что это влияет только на таблицы, в которые вы загрузили данные, а не на остальные.)

есть "грязный хак" в https://stackoverflow.com/a/14957893/4553442 чтобы добавить a операция "высева" аналогична миграции вверх и вниз...

по состоянию на рельсы 5,rake инструмент командной строки был сглажен как rails теперь

rails db:reset вместо rake db:reset

будет работать так же хорошо

можно использовать rake db:reset когда вы хотите удалить локальную базу данных и начать с чистого листа с данными, загруженными из db/seeds.rb. Это полезная команда, когда вы все еще выясняете свою схему, и часто нужно добавлять поля в существующие модели.

после того, как команда сброса используется он будет делать следующее: Отбросьте базу данных:rake db:drop Загрузите схему:rake db:schema:load Посевные данные:rake db:seed

но если вы хотите полностью удалить свою базу данных, вы можете использовать rake db:drop. Отбрасывание база данных также удалит любые конфликты схемы или плохие данные. Если вы хотите сохранить имеющиеся данные, обязательно создайте их резервную копию перед выполнением этой команды.

это подробная статья о самом важном грабли базы данных команд.