มีวิธีแก้ปัญหาที่เป็นไปได้มากมายสำหรับสิ่งนี้ และจะขึ้นอยู่กับวิธีที่คุณปรับใช้และเครื่องมือใดที่คุณใช้ในการปรับใช้
ก่อนอื่น พึงระลึกไว้เสมอว่ามันเป็น antipattern ในการเรียกใช้พ็อดและเรียกใช้ SQL (สคริปต์เริ่มต้นหรือการย้ายข้อมูล) คอนเทนเนอร์ควรทำสิ่งหนึ่งและคุณไม่ควรคิดว่าคอนเทนเนอร์จะถูกดำเนินการอย่างไร ตัวอย่างเช่น จะเกิดอะไรขึ้นหากคุณเปิดคอนเทนเนอร์หลายรายการพร้อมกัน หากทั้งหมดเรียกใช้การโยกย้ายเมื่อเริ่มต้น พวกเขาจะสะดุดซึ่งกันและกัน ดังนั้น, ตู้คอนเทนเนอร์ ควรทิ้งเป็นวิธีแก้ปัญหาด้วย
ทางออกที่ง่ายที่สุดคือการเรียกใช้แยกต่างหาก งาน เป็นส่วนหนึ่งของไปป์ไลน์ CI/CD ของคุณ คุณดำเนินการ init/migration เมื่อนำไปใช้แล้ว คุณปรับใช้รหัสของคุณ
หากคุณกำลังใช้ หางเสือ, คุณสามารถใช้ได้ ติดตั้งล่วงหน้าหรืออัปเดตเบ็ดล่วงหน้า
ตามที่ฉันพยายามอธิบาย มีทางเลือกมากมายในการทำสิ่งที่คุณต้องการสิ่งสำคัญคือคุณต้องควบคุม "เวลา" ที่จะใช้การเปลี่ยนแปลงฐานข้อมูลเป็นพิเศษ เพราะคุณไม่สามารถควบคุม "วิธี" ที่การเปลี่ยนแปลงฐานข้อมูลจะทำงานได้