Saya telah menyiapkan aplikasi Docker Django / PostgreSQL dengan cermat mengikuti petunjuk Mulai Cepat Django di situs Docker .
Pertama kali saya menjalankan manage.py migrate Django, menggunakan perintah sudo docker-compose run web python manage.py migrate
, ini bekerja seperti yang diharapkan. Basis data dibangun di dalam wadah Docker PostgreSQL dengan baik.
Perubahan yang dibuat pada aplikasi Django itu sendiri juga tercermin dalam wadah Docker Django, saat saya menyimpannya. Itu bagus!
Tetapi jika saya kemudian mengubah model di Django, dan mencoba memperbarui database Postgres agar cocok dengan model, tidak ada perubahan yang terdeteksi sehingga tidak ada migrasi yang terjadi tidak peduli berapa kali saya menjalankan makemigrations
atau migrate
lagi.
Pada dasarnya, setiap kali saya mengubah model Django, saya harus menghapus wadah Docker (menggunakan sudo docker-compose rm
) dan memulai lagi dengan migrasi baru.
Saya masih mencoba untuk memahami Docker, dan ada banyak hal yang tidak saya mengerti tentang cara kerjanya, tetapi yang ini membuat saya gila. Mengapa migrasi tidak melihat perubahan saya? Apa yang saya lakukan salah?
You just have to log into your running docker container and run your commands.
tetapi apa alasannya berperilaku seperti itu? @LouisBarranqueiro