มีคำถามหนึ่งเมื่อเร็ว ๆ นี้ฉันกำลังพัฒนาหนึ่งโมดูลที่มีจำนวนมากของตารางในฐานข้อมูลและแนวคิดที่มีการเปลี่ยนแปลงบ่อยดังนั้นจึงจำเป็นต้องเปลี่ยนตารางที่มีอยู่ในฐานข้อมูลและฉันสังเกตเห็นความแตกต่างในการสร้างตารางและสคริปต์อัพเกรดตาราง ไปเลย ดูที่การสร้างรหัสตารางด้านล่าง:
$table = $installer->getConnection()
->newTable($installer->getTable('module/table'))
->addColumn('id', Varien_Db_Ddl_Table::TYPE_INTEGER, 9, array(
'nullable' => false,
'primary' => true,
'identity' => true,
'auto_increment' => true
)
);
NewTable ()เช่นฟังก์ชั่นผลตอบแทนของVarien_Db_Ddl_Table และสคริปต์ตารางการอัพเกรดใช้วิธีที่แตกต่างเพื่อเพิ่มคอลัมน์ใหม่ในตารางที่มีอยู่จะดู:
$installer->getConnection()
->addColumn($tableName, 'test', array(
'nullable' => false,
'length' => 9,
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
'comment' => 'Test Field'
)
)
ฟังก์ชั่น addColumn ทั้งสองนี้มีความแตกต่างกันและเป็นวิธีการเรียนที่แตกต่างกันและทำให้ฉันเสียใจทุกครั้งที่ต้องเปลี่ยนไวยากรณ์
ดังนั้นนี่คือคำถามมีวิธีอัปเดตตารางที่มีอยู่โดยใช้อินสแตนซ์ของคลาสVarien_Db_Ddl_Tableหรือไม่