การสร้างและใช้งาน Migration ใน Yii Framework 2
Migration คืออะไร
Migration คือการสร้าง versioning ของการทำงานกับฐานข้อมูล เช่น การสร้างตาราง การเพิ่ม field การลบ field เพื่อให้เห็น version ต่างๆ และทราบที่มาที่ไปได้การ Migration จึงมีความสำคัญกับการพัฒนาระบบที่ทำงานเป็นทีมหลายๆ คน
รูปแบบของ Migration นั้นถูกนำมาใช้ให้เหมือนกับการ Coding ที่ต้องมีการเก็บ Versioning ของ Code เช่น Git โดยจะเห็นว่าประวัติของ Code นั้นมีที่มาที่ไปอย่างไร มีการแก้ไขตรงไหนบ้าง หรือ เพิ่มตรงไหนบ้าง จึงเป็นที่มาของ Migration นั่นเอง
ไฟล์ Migration นั้นจะมี Method หลักๆ อยู่ 2 Method คือ up() และ down() โดยทั้ง 2 Method นี้ทำหน้าที่ตรงกันข้ามกัน เช่น up() คือการสร้างตาราง down() คือการลบตาราง เป็นต้น
เริ่มใช้งาน Migration
ก่อนอื่นเมื่อติดตั้ง Yii Framework 2 เสร็จเรียบร้อยแล้วให้แก้ไขการเชื่อมต่อฐานข้อมูล จากนั้นเปิด CommandPrompt/Terminal แล้วพิมพ์คำสั่งในการสร้างตาราง migration ดังนี้yii migrate
ก็จะได้ตาราง migration ในฐานข้อมูลเรียบร้อยแล้ว เพื่อเก็บ version ของการเรียกใช้งาน Migration file ต่างๆที่เก็บไฟล์ Migration
ไฟล์ Migration จะถูกเก็บไว้ใน folder console/migrationsชนิดฟิวด์แบบต่างๆ
ชนิดของฟิวด์แบบต่างๆ ที่ใช้ในการสร้าง$this->primaryKey() //PRIMARy และ AUTO_INCREMENT
$this->string(255) //VARCHAR(255) 255 คือความยาว
$this->text() //ชนิด TEXT
$this->integer() //จำนวนเต็ม คือ INT
$this->timestamp() //แบบ TIMESTAMP
การสร้างไฟล์ Migration
สำหรับการสร้างไฟล์ migration นั้นเราจะใช้ commandPrompt/Terminal ในการพิมพ์คำสั่งในการสร้างการสร้างตาราง
การสร้างตารางจะใช้คำสั่งในการสร้างดังนี้yii migrate/create create_table_name
ตามธรรมเนียมของ Yii Framework 2 จะให้มีคำว่า create_ชื่อตาราง เช่นyii migrate/create create_product
ก็จะได้ไฟล์ลักษณะดังนี้console/migrations/m160221_055928_create_product.php
จากนั้นเราก็สามารถเขียนคำสั่งใน method up() และ down() ได้แล้ว ทดลองเขียนคำสั่งใน method up()ที่มา:https://www.programmerthailand.com/tutorial/post/view/36/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-migration-%E0%B9%83%E0%B8%99-yii-framework-2
ไม่มีความคิดเห็น:
แสดงความคิดเห็น