Есть ли команда rake для уничтожения данных в таблицах базы данных?
Как создать db: seed script, чтобы предварительно заполнить данные в мои таблицы?
Есть ли команда rake для уничтожения данных в таблицах базы данных?
Как создать db: seed script, чтобы предварительно заполнить данные в мои таблицы?
Я использую rake db:reset
, который отбрасывает, а затем воссоздает базу данных и включает файл seeds.rb.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Вы можете удалить все и заново создать базу данных + семена обоими:
rake db:reset
: загрузка из schema.rbrake db:drop db:create db:migrate db:seed
: загрузка из миграцииУбедитесь, что у вас нет подключений к db (сервер rails, клиент sql..), или db не будет отбрасываться.
schema.rb - это моментальный снимок текущего состояния вашей базы данных, сгенерированный с помощью:
rake db:schema:dump
Если вы не хотите отбрасывать и воссоздавать весь shebang только для перезагрузки ваших данных, вы можете использовать MyModel.destroy_all
(или delete_all
) в файле seed.db, чтобы очистить таблицу до вашего MyModel.create!(...)
операторы загружают данные. Затем вы можете повторно выполнять операцию db:seed
снова и снова. (Очевидно, это влияет только на таблицы, в которые вы загрузили данные, а не на остальные).
Там есть "грязный хак" в fooobar.com/questions/14744/..., чтобы добавить операцию "дезанимания", аналогичную миграции вверх и вниз...
По Rails 5 инструмент командной строки rake
был отброшен, так что теперь он
rails db:reset
вместо rake db:reset