ฉันได้ตั้งค่าแอปหาง Django / PostgreSQL อย่างใกล้ชิดต่อไปนี้คำแนะนำ Django Quick Start บนเว็บไซต์เทียบท่า
ครั้งแรกที่ฉันเรียกใช้ Manage.py migrate ของ Django โดยใช้คำสั่งsudo docker-compose run web python manage.py migrate
มันทำงานได้ตามที่คาดไว้ ฐานข้อมูลถูกสร้างขึ้นภายในคอนเทนเนอร์ Docker PostgreSQL ได้ดี
การเปลี่ยนแปลงที่เกิดขึ้นกับแอป Django เองก็สะท้อนให้เห็นในคอนเทนเนอร์ Docker Django เช่นเดียวกันในขณะที่ฉันบันทึก มันยอดมาก!
แต่ถ้าฉันเปลี่ยนโมเดลใน Django และพยายามอัปเดตฐานข้อมูล Postgres ให้ตรงกับโมเดลจะไม่มีการตรวจพบการเปลี่ยนแปลงดังนั้นจึงไม่มีการย้ายข้อมูลไม่ว่าฉันจะเรียกใช้กี่ครั้งmakemigrations
หรือmigrate
อีกครั้ง
โดยทั่วไปทุกครั้งที่ฉันเปลี่ยนโมเดล Django ฉันต้องลบคอนเทนเนอร์ Docker (โดยใช้sudo docker-compose rm
) และเริ่มต้นใหม่ด้วยการย้ายข้อมูลใหม่
ฉันยังคงพยายามเอาหัวของฉันไปรอบ ๆ Docker และมีหลายอย่างที่แย่มากที่ฉันไม่เข้าใจเกี่ยวกับวิธีการทำงาน แต่สิ่งนี้ทำให้ฉันรู้สึกแย่ ทำไมย้ายข้อมูลไม่เห็นการเปลี่ยนแปลงของฉัน ผมทำอะไรผิดหรือเปล่า?
You just have to log into your running docker container and run your commands.
แต่อะไรคือสาเหตุที่ทำให้มันทำงานแบบนั้น? @LouisBarranqueiro