Apakah ada perintah rake untuk menghapus data dalam tabel database?
Bagaimana cara membuat skrip db: seed untuk mengisi data ke tabel saya?
ruby-on-rails
database
seeding
Blankman
sumber
sumber
Anda dapat menghapus semuanya dan membuat ulang database + seed dengan keduanya:
rake db:reset
: banyak dari schema.rbrake db:drop db:create db:migrate db:seed
: memuat dari migrasiPastikan Anda tidak memiliki koneksi ke db (server rails, sql client ..) atau db tidak akan jatuh.
schema.rb adalah snapshot dari kondisi saat ini dari database Anda yang dihasilkan oleh:
sumber
Jika Anda merasa tidak ingin menjatuhkan dan membuat ulang seluruh situs hanya untuk memuat ulang data Anda, Anda bisa menggunakan
MyModel.destroy_all
(ataudelete_all
) di file seed.db untuk membersihkan tabel sebelumMyModel.create!(...)
pernyataan Anda memuat data. Kemudian, Anda dapat mengulangidb:seed
operasi berulang kali. (Jelas, ini hanya memengaruhi tabel yang telah Anda masukkan data, bukan sisanya.)Ada "hack kotor" di https://stackoverflow.com/a/14957893/4553442 untuk menambahkan operasi "penghilangan benih" yang mirip dengan migrasi naik turun ...
sumber
Pada Rails 5,
rake
alat commandline telah alias sepertirails
sekarangrails db:reset
dari padarake db:reset
akan bekerja dengan baik
sumber
Anda dapat menggunakan
rake db:reset
saat Anda ingin menjatuhkan basis data lokal dan mulai dengan data baru dari manadb/seeds.rb
. Ini adalah perintah yang berguna ketika Anda masih mencari tahu skema Anda, dan sering perlu menambahkan bidang ke model yang ada.Setelah perintah reset digunakan, ia akan melakukan hal berikut: Drop database:
rake db:drop
Load the schema:rake db:schema:load
Seed the data:rake db:seed
Tetapi jika Anda ingin sepenuhnya menjatuhkan database Anda, Anda dapat menggunakan
rake db:drop
. Menjatuhkan basis data juga akan menghapus konflik skema atau data buruk. Jika Anda ingin menyimpan data yang Anda miliki, pastikan untuk mencadangkannya sebelum menjalankan perintah ini.Ini adalah artikel terperinci tentang perintah database rake paling penting .
sumber