ฉันกำลังติดตามวิดีโอการสอนเกี่ยวกับรางและฉันไม่สามารถเข้าใจได้ว่าdb:test:prepare
คำสั่งนั้นทำอะไรได้บ้าง ใครช่วยให้คำอธิบาย?
ฉันกำลังติดตามวิดีโอการสอนเกี่ยวกับรางและฉันไม่สามารถเข้าใจได้ว่าdb:test:prepare
คำสั่งนั้นทำอะไรได้บ้าง ใครช่วยให้คำอธิบาย?
คำตอบ:
rake db: migrate ด้านบนเรียกใช้การย้ายข้อมูลที่รอดำเนินการในสภาพแวดล้อมการพัฒนาและอัปเดต db / schema.rb rake db: test: load สร้างฐานข้อมูลการทดสอบใหม่จาก db / schema.rb ปัจจุบัน ในการพยายามครั้งต่อ ๆ ไปคุณควรเรียกใช้ db: test: เตรียมก่อนเนื่องจากขั้นแรกจะตรวจหาการย้ายข้อมูลที่รอดำเนินการและเตือนคุณอย่างเหมาะสม
- http://guides.rubyonrails.org/testing.html
โดยทั่วไปจะจัดการกับการโคลนฐานข้อมูลดังนั้นคุณจึงไม่ต้องเรียกใช้การย้ายข้อมูลกับการทดสอบเพื่ออัปเดตฐานข้อมูลทดสอบ
โดยเฉพาะrake db:test:prepare
จะดำเนินการต่อไปนี้:
นั่นคือมันจะดูdb/schema.rb
ไฟล์ของคุณเพื่อตรวจสอบว่ามีการโยกย้ายใด ๆ ที่มีอยู่ในโปรเจ็กต์ของคุณที่ยังไม่ถูกเรียกใช้ สมมติว่าไม่มีการย้ายข้อมูลที่ค้างอยู่ฐานข้อมูลจะทำให้ฐานข้อมูลว่างเปล่าและโหลดซ้ำตามเนื้อหาของdb/schema.rb
ไฟล์
คราดฐานข้อมูล: การทดสอบ: เตรียมความพร้อมเป็นทางออกที่ดีสำหรับปัญหา PG เช่นนี้
“ PG :: UndefinedTable: ข้อผิดพลาด: ไม่มีความสัมพันธ์” ด้วยการตั้งชื่อและรูปแบบ Rails ที่ถูกต้อง” ซึ่งฉันไม่สามารถดำเนินการได้ rake db:migrate RAILS_ENV=production
ตัวอย่างเช่นเมื่อคุณไม่สามารถสร้างฐานข้อมูลทดสอบสำหรับจุดบกพร่องที่กล่าวถึงที่นี่ : "ไม่มีผู้ใช้ที่เกี่ยวข้องกับข้อผิดพลาดที่ไม่สามารถระบุได้ของ PG"
ทุกข้อผิดพลาดนี้ "PG :: UndefinedTable: ERROR: ไม่มีความสัมพันธ์ xxxxx"
rake db:test:prepare
เลิกใช้งานแล้ว