Apa sebenarnya rake db: test: persiapan?


124

Saya mengikuti video tutorial rel dan saya tidak tahu apa db:test:preparesebenarnya perintah itu. Bisakah seseorang memberikan penjelasan?

Jawaban:


119

Rake db: migrate di atas menjalankan semua migrasi yang tertunda di lingkungan pengembangan dan memperbarui db / schema.rb. Rake db: test: load membuat ulang database pengujian dari db / schema.rb saat ini. Pada percobaan berikutnya, adalah ide yang baik untuk menjalankan db: test: prep, karena ini pertama kali memeriksa migrasi yang tertunda dan memperingatkan Anda dengan tepat.

- http://guides.rubyonrails.org/testing.html

Pada dasarnya ini menangani kloning database sehingga Anda tidak perlu menjalankan migrasi terhadap pengujian untuk memperbarui database pengujian.


19
rake db:test:preparesekarang tidak digunakan lagi.
Jngai1297

3
di atas url sudah mati, ini akan menjadi yang baru github.com/rails/rails/blob/4-1-stable/activerecord/...
jembel


4
@ Jngai1297 Tidak lagi!
Phillipp

1
@Phillipp one more time Guideline.rubyonrails.org/v5.0/…
yozzz

42

Secara khusus, rake db:test:prepareakan melakukan hal berikut:

  • Periksa migrasi yang tertunda dan,
  • memuat skema pengujian

Artinya, akan terlihat db/schema.rbfile Anda untuk menentukan apakah ada migrasi yang ada di proyek Anda yang belum dijalankan. Dengan asumsi tidak ada migrasi yang belum diselesaikan, ini akan mengosongkan database dan memuatnya kembali berdasarkan konten db/schema.rbfile.


2

rake db: test: persiapkan adalah solusi yang baik untuk masalah PG seperti ini .

“PG :: UndefinedTable: ERROR: relasi tidak ada” dengan penamaan dan konvensi Rails yang benar "yang tidak bisa saya jalankan begitu saja rake db:migrate RAILS_ENV=production

Ketika, misalnya Anda tidak dapat membuat database pengujian untuk bug yang dibahas di sini : "Pengguna relasi error yang tidak ditentukan PG tidak ada"

Semua di sekitar kesalahan ini "PG :: UndefinedTable: ERROR: relasi xxxxx tidak ada”

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.