Відповіді:
Я використовую rake db:reset
краплі, а потім відтворюю базу даних і включає ваш файл seed.rb.
http://guides.rubyonrails.org/migrations.html#resetting-the-database
Ви можете видалити все та відтворити базу даних + насіння обома:
rake db:reset
: вантажі з schema.rbrake db:drop db:create db:migrate db:seed
: вантажі від міграційПереконайтеся, що у вас немає підключень до db (сервер рейлів, клієнт sql ..) або db не впаде.
schema.rb - це знімок поточного стану вашої бази даних, генерований:
rake db:schema:dump
Якщо вам не здається скинути і відтворити весь шебанг просто для перезавантаження своїх даних, ви можете використовувати MyModel.destroy_all
(або delete_all
) у файлі seed.db, щоб очистити таблицю, перш ніж ваші MyModel.create!(...)
заяви завантажуватимуть дані. Потім ви можете повторити db:seed
операцію знову і знову. (Очевидно, це стосується лише таблиць, у які ви завантажували дані, а не решти.)
На сайті https://stackoverflow.com/a/14957893/4553442 є "брудний злом", щоб додати операцію "висівання", подібну міграції вгору та вниз ...
За станом на Rails 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
. Видалення бази даних також видалить будь-які конфлікти схеми або погані дані. Якщо ви хочете зберегти наявні дані, не забудьте створити резервну копію, перш ніж виконувати цю команду.
Це детальна стаття про найважливіші команди бази граблів .