Есть ли команда rake, чтобы уничтожить данные в таблицах базы данных?
Как мне создать скрипт db: seed для предварительного заполнения данных в моих таблицах?
ruby-on-rails
database
seeding
Бланкмэн
источник
источник
Вы можете удалить все и заново создать базу данных + семена с обоими:
rake db:reset
: загружает из schema.rbrake db:drop db:create db:migrate db:seed
: грузы от миграцийУбедитесь, что у вас нет подключений к db (rails server, sql client ..), иначе db не будет сброшен.
schema.rb - это снимок текущего состояния вашей базы данных, сгенерированный:
источник
Если вам не хочется отбрасывать и заново создавать весь shebang просто для перезагрузки данных, вы можете использовать
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
. Удаление базы данных также удалит любые конфликты схемы или неверные данные. Если вы хотите сохранить имеющиеся у вас данные, обязательно выполните их резервное копирование перед выполнением этой команды.Это подробная статья о наиболее важных командах базы данных rake .
источник