Django Academy · บทเรียน

makemigrations กับ migrate

Django วางแผนและนำการเปลี่ยนแปลงโครงสร้างไปใช้อย่างไร

บทเรียน 1 จาก 413 ขั้นตอน

makemigrations กับ migrate เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

สองขั้นตอนไม่ใช่ขั้นตอนเดียว

Django เปลี่ยนแปลงฐานข้อมูลของคุณเป็น สอง ขั้นตอน ขั้นแรกคือเขียนแผน จากนั้นจึงเรียกใช้แผนนั้น การรู้ว่าแต่ละขั้นตอนทำอะไรช่วยลดความสับสนได้มาก 🧭

makemigrations จัดทำแผน

makemigrations ตรวจสอบโมเดลของคุณ ดูว่ามีอะไรเปลี่ยนแปลง แล้วเขียนไฟล์ Migration ที่อธิบายการเปลี่ยนแปลงนั้น โดยยังไม่แตะต้องฐานข้อมูล

python manage.py makemigrations

migrate นำแผนไปใช้

migrate นำไฟล์ Migration เหล่านั้นไปเรียกใช้กับฐานข้อมูลจริง เพื่อสร้างหรือแก้ไขตารางจริง

python manage.py migrate

เหตุผลที่แยกสองขั้นตอน

การแยกแผนออกจากการดำเนินการช่วยให้คุณ ตรวจทาน การเปลี่ยนแปลง บันทึกลง git และเรียกใช้ขั้นตอนเดียวกันบนทุกเครื่องและเซิร์ฟเวอร์ได้

Migration คือไฟล์

แผนแต่ละรายการจะอยู่ในไฟล์ภายในแอปของคุณใต้ migrations/ คุณควรบันทึกไฟล์เหล่านี้ไว้ เพื่อให้เพื่อนร่วมทีมใช้การเปลี่ยนแปลงที่เหมือนกันทุกประการ

วงจรการทำงานทั่วไป

แก้ไขโมเดล เรียกใช้ makemigrations เพื่อบันทึกการเปลี่ยนแปลง แล้วเรียกใช้ migrate เพื่อนำไปใช้ วงจรนี้คือ กระบวนการทำงานกับโครงสร้างฐานข้อมูลที่คุณใช้เป็นประจำ

การตั้งชื่อ Migration

เพิ่มป้ายกำกับที่ชัดเจน เพื่อให้ชื่อไฟล์อ่านเหมือนประวัติการเปลี่ยนแปลง ไม่ใช่กองตัวเลข ใช้ตัวเลือก --name เพื่ออธิบายสิ่งที่เปลี่ยนแปลง

python manage.py makemigrations --name add_published_field

กำหนดเป้าหมายแอปเดียว

ส่งป้ายกำกับของแอปเพื่อสร้างหรือนำ Migration ไปใช้กับ แอปนั้นโดยเฉพาะ ช่วยแยกการเปลี่ยนแปลงที่ไม่เกี่ยวข้องออกไป

python manage.py makemigrations blog

ตรวจสอบโดยไม่เปลี่ยนแปลง

เรียกใช้ makemigrations พร้อม --check ใน CI เพื่อให้การสร้างล้มเหลว หากการเปลี่ยนแปลงโมเดลยังไม่มี Migration ที่ตรงกัน

python manage.py makemigrations --check --dry-run

ดูสิ่งที่ถูกนำไปใช้แล้ว

คำสั่ง showmigrations จะแสดง Migration ทุกรายการ และทำเครื่องหมายรายการที่นำไปใช้แล้วด้วย X ทำให้คุณทราบสถานะปัจจุบันที่แน่นอน

python manage.py showmigrations

ลำดับมีความสำคัญ

เรียกใช้ makemigrations ก่อนเสมอ แล้วจึงเรียกใช้ migrate การเรียกใช้ migrate เพียงอย่างเดียวจะนำแผนที่มีอยู่แล้วไปใช้ รวมถึงแผนที่ Django สร้างไว้ด้วย

ตรวจสอบความเข้าใจสั้น ๆ

คำสั่งใดเป็นคำสั่งที่เปลี่ยนแปลงตารางในฐานข้อมูลจริง

ทบทวน

คุณได้เรียนรู้ลำดับการทำงานแล้ว: makemigrations เขียนแผน ส่วน migrate นำแผนไปใช้ วางแผนก่อน แล้วจึงนำไปใช้ เพื่อให้โครงสร้างฐานข้อมูลสอดคล้องกันทุกแห่ง 🎉

เริ่มต้นได้ฟรี

เรียนรู้ Python ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
30
บทเรียน
120

คำถามที่พบบ่อย

บทเรียน “makemigrations กับ migrate” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “makemigrations กับ migrate” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “makemigrations กับ migrate”

Django วางแผนและนำการเปลี่ยนแปลงโครงสร้างไปใช้อย่างไร คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “makemigrations กับ migrate” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม

ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. makemigrations กับ migrate
  2. อ่านไฟล์การย้ายโครงสร้าง
  3. เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง
  4. sqlmigrate และการตรวจสอบ SQL
← กลับไปที่ Django Academy