เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง
เพิ่มฟิลด์และนำการเปลี่ยนแปลงเข้า DB
เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง เป็นบทเรียน Django Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Django Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
โมเดลมีการพัฒนา
แอปจริงมีการเปลี่ยนแปลงอยู่เสมอ เมื่อฟีเจอร์ต้องการคอลัมน์ใหม่ ให้แก้ไข โมเดล แล้วให้ Migration นำการเปลี่ยนแปลงไปยังฐานข้อมูล
ขั้นตอนที่ 1: แก้ไขโมเดล
เริ่มด้วยการเพิ่มฟิลด์ในคลาสโมเดลของคุณ ตรงนี้คุณจะกำหนดสถานะ published ให้กับ Post พร้อมค่าเริ่มต้นที่เหมาะสม
class Post(models.Model):
title = models.CharField(max_length=200)
published = models.BooleanField(default=False)ขั้นตอนที่ 2: makemigrations
เรียกใช้ makemigrations Django จะเปรียบเทียบโมเดลใหม่กับโมเดลล่าสุด แล้วเขียน Migration ใหม่สำหรับฟิลด์ที่เพิ่มเข้ามา
python manage.py makemigrationsขั้นตอนที่ 3: migrate
เรียกใช้ migrate เพื่อใช้ไฟล์ใหม่ ตอนนี้คอลัมน์จะมีอยู่ในตารางจริงและพร้อมใช้งาน
python manage.py migrateค่าเริ่มต้นเติมข้อมูลในแถวเก่า
การเพิ่มฟิลด์ที่ไม่อนุญาตให้เป็นค่าว่างลงในตารางที่มีข้อมูลอยู่แล้ว จำเป็นต้องมีค่าสำหรับแถวเดิม ตัว default จะเติมค่าให้แถวเหล่านั้นอย่างเหมาะสม
ไม่มีค่าเริ่มต้นใช่ไหม Django จะถาม
หากไม่มีค่าเริ่มต้น makemigrations จะหยุดและขอให้คุณระบุค่า one-off สำหรับแถวเดิมก่อนดำเนินการต่อ
การเปลี่ยนแปลงแต่ละครั้งเป็นไฟล์ใหม่
Django จะไม่แก้ไข Migration เก่า การเปลี่ยนแปลงโมเดลแต่ละครั้งจะกลายเป็นไฟล์หมายเลข ใหม่ที่ต่ออยู่ด้านบนของไฟล์ล่าสุด
การเปลี่ยนชื่อฟิลด์
เปลี่ยนชื่อฟิลด์ แล้ว Django อาจถามว่าคุณเปลี่ยนชื่อฟิลด์หรือไม่ แทนที่จะลบแล้วเพิ่มใหม่ ให้ตอบว่าใช่เพื่อรักษา ข้อมูลในคอลัมน์ไว้
การลบฟิลด์
ลบฟิลด์ออกจากโมเดล จากนั้น makemigrations จะเขียนขั้นตอน RemoveField ให้ เมื่อนำไปใช้แล้ว คอลัมน์นั้นจะหายไปอย่างถาวร
การย้อนกลับ Migration
หากต้องการยกเลิก ให้ migrate กลับไปยังหมายเลขก่อนหน้า Django จะเรียกใช้ Migration ในทิศทาง ย้อนกลับ เพื่อคืนโครงสร้างฐานข้อมูลก่อนหน้า
python manage.py migrate blog 0001บันทึกไฟล์เหล่านี้
บันทึก Migration ใหม่พร้อมกับการแก้ไขโมเดลเสมอ เพื่อนร่วมทีมจะเรียกใช้ migrate และได้โครงสร้างฐานข้อมูลที่ เหมือนกันโดยไม่มีเรื่องไม่คาดคิด
ตรวจสอบความเข้าใจสั้น ๆ
คุณเพิ่มฟิลด์ที่จำเป็นลงในตารางซึ่งมีแถวอยู่แล้ว Django ต้องการอะไร
ทบทวน
วงจรนี้เรียบง่าย: แก้ไข โมเดล เรียกใช้ makemigrations เรียกใช้ migrate แล้วบันทึกการเปลี่ยนแปลง การเปลี่ยนแปลงแต่ละครั้งจะกลายเป็นไฟล์ใหม่ ทำให้ประวัติของคุณตรงตามความเป็นจริง ✅
เรียนรู้ Python ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 30
- บทเรียน
- 120
คำถามที่พบบ่อย
บทเรียน “เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Django Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Django Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง”
เพิ่มฟิลด์และนำการเปลี่ยนแปลงเข้า DB คุณปฏิบัติ Django Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Django Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Django Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Django Academy นี้ได้ไหม
ได้ บทเรียน Django Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- makemigrations กับ migrate
- อ่านไฟล์การย้ายโครงสร้าง
- เปลี่ยนโมเดลและย้ายโครงสร้างอีกครั้ง
- sqlmigrate และการตรวจสอบ SQL