Rails สูญเสียปัญหาไฟล์การโยกย้าย

เมื่อ 2 เดือนที่แล้ว ไฟล์การโยกย้ายไฟล์หนึ่งของฉันถูกลบออก สิ่งนี้คือเมื่อฉันเรค db:migrate ฐานข้อมูลของฉันใน localhost การโยกย้ายหายไป ฉันไม่สามารถสร้างการโยกย้ายใหม่ได้เนื่องจากฐานข้อมูลที่ใช้งานจริงถูกย้ายพร้อมกับไฟล์ที่หายไป ดังนั้นทุกครั้งที่ฉันนำเข้าฐานข้อมูลที่ใช้งานจริงในเครื่องและดำเนินการย้ายข้อมูล ระบบจะแจ้งว่า:

มีฟิลด์นี้อยู่แล้ว....

ฉันเห็นความคิดเห็นที่บอกว่าฉันควรแก้ไขตาราง schema_migrations ด้วยเวอร์ชันของไฟล์การโยกย้ายที่เกี่ยวข้อง

คุณมีคำอธิบายเชิงลึกเกี่ยวกับปัญหานี้หรือไม่

ขอบคุณ


person maxencenoel    schedule 28.11.2013    source แหล่งที่มา


คำตอบ (1)


ตาราง schema_migrations เก็บหมายเลขเวอร์ชันทั้งหมดของการย้ายข้อมูลทั้งหมดที่รันไปแล้ว หรือที่ระบบคิดว่าอย่างน้อยที่สุดก็รันแล้ว เมื่อคุณทำ rake db:migrate Rails จะดูไฟล์ทั้งหมดใน db/migrate และละเว้นไฟล์ที่มีคำนำหน้าเป็นตัวเลขอยู่ใน schema_migrations

ดังนั้น หากคุณมีการย้ายข้อมูลที่ได้ดำเนินการไปแล้วจริง แต่ระบบคิดว่าไม่มี คุณเพียงแค่ต้องเพิ่มหมายเลขเวอร์ชันลงใน schema_migrations

เปิดคอนโซลฐานข้อมูลที่เกี่ยวข้อง และพิมพ์

insert into schema_migrations (version) values("<the number from the start of the migration file>");

เห็นได้ชัดว่าให้แทนที่ชิ้นส่วนใน ‹ > ด้วยหมายเลขที่ถูกต้อง

จากนั้น db:migrate จะไม่พยายามเรียกใช้การย้ายข้อมูลนั้นอีกต่อไป

person Max Williams    schedule 28.11.2013