คุณสามารถเปลี่ยน Rails Schema โดยไม่ต้องโยกย้ายได้หรือไม่?
ฉันใช้ bcrypt สำหรับการตรวจสอบสิทธิ์ Rails API - นี่เป็นสิ่งที่เกิดขึ้นหลังจากหลายชั่วโมงในการพยายามหาวิธีทำให้ Devise ทำงานผ่าน Rails api ได้ (พยายามทำ API ด้วย React frontend เท่านั้น)
ยังไงก็ตามฉันทำมันจนกว่าจะต้องชำระหนี้ทางเทคนิค BCrypt password_digest และ Devise Hashed_password อยู่ในทางตันและดูเหมือนว่าฉันจะไม่สามารถเพิกเฉยต่อสิ่งอื่นได้ ฉันต้องการเปลี่ยนสคีมาส่วนนั้นเพื่อรองรับ bcrypt วิธีที่ดีที่สุดในการดำเนินการอย่างไร
คำตอบ
การแปลงฐานข้อมูลโดยไม่ใช้การโอนย้ายทำได้ง่ายเหมือนกับการรันrails db
ซึ่งจะเริ่ม CLI สำหรับฐานข้อมูลของคุณและพิมพ์ SQL แต่จากนั้นคุณต้องทำขั้นตอนเหล่านั้นซ้ำในฐานข้อมูลการทดสอบ / การพัฒนา / การผลิตและตรวจสอบให้แน่ใจว่านักพัฒนาคนอื่น ๆ ที่ทำงานในโครงการนั้นทำตามขั้นตอนเหล่านั้นบนฐานข้อมูลในพื้นที่ของตนด้วย
นี่เป็นกระบวนการที่เกิดข้อผิดพลาดได้ง่ายและการแก้ปัญหาด้วยการย้ายข้อมูลนั้นอาจจะผ่านไม่ได้มากกว่าที่คุณคิด
วิธีที่ดีที่สุดในการดำเนินการนี้คืออะไร?
ทางออกที่ดีที่สุดที่จะไม่รู้เป็นความรู้
การโอนย้าย ActiveRecord เป็นเพียงภาษาเฉพาะของโดเมน (DSL) เพื่อสร้างการสืบค้น SQL และกลไกในการเรียกใช้การย้ายข้อมูลกับฐานข้อมูลที่แตกต่างกันและคอยติดตามว่าการย้ายข้อมูลใดถูกรันผ่านตารางข้อมูลเมตาในฐานข้อมูล
แม้ว่าคุณจะไม่สามารถแสดงแบบสอบถามใด ๆ ที่คุณพยายามดำเนินการผ่าน DSL แต่คุณก็ยังสามารถใช้สตริง SQL ที่กำหนดเองได้