Сбросить базу данных (очистить все), затем семя базы данных
-
25-09-2019 - |
Вопрос
Есть ли команда Rake для уничтожения данных в таблицах баз данных?
Как создать БД: Сценарий семян для предварительной заправки данных на мои таблицы?
Решение
я использую 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
: грузы из миграций
Убедитесь, что у вас нет подключений к БД (Rails Server, SQL Client.) Или DB не упадет.
Schema.rb - это снимок текущего состояния вашей базы данных, создаваемых:
rake db:schema:dump
Если вы не хотите бросить и воссоздать весь шебанг, просто чтобы перезагрузить данные, вы можете использовать MyModel.destroy_all
(или delete_all
) в файле SEED.DB, чтобы очистить таблицу до вашего MyModel.create!(...)
Заявления загружают данные. Тогда вы можете повторить db:seed
операция снова и снова. (Очевидно, это только влияет на таблицы, которые вы загрузили данные, а не остальные из них.)
Есть «грязный хак» в https://stackoverflow.com/a/14957893/4553442. Чтобы добавить операцию «Осевание», похожее на миграцию вверх и вниз ...
Как рельсы 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
. Отказ Снижение базы данных также удалит любые конфликты схемы или плохие данные. Если вы хотите сохранить данные, которые у вас есть, обязательно поддерживайте его, прежде чем запустить эту команду.
Это подробная статья о самых важных Команды базы данных Rake.