Có một câu hỏi, gần đây tôi đang phát triển một mô-đun có rất nhiều bảng trong DB và khái niệm đã thay đổi thường xuyên, do đó cần phải thay đổi các bảng hiện có trong DB và tôi nhận thấy sự khác biệt trong việc tạo bảng và nâng cấp bảng. Bạn đi đây Nhìn vào việc tạo mã bảng dưới đây:
$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
)
);
hàm newTable () trả về thể hiện của Varien_Db_Ddl_Table Và kịch bản bảng nâng cấp sử dụng các cách khác nhau để thêm cột mới vào bảng hiện có, hãy xem:
$installer->getConnection()
->addColumn($tableName, 'test', array(
'nullable' => false,
'length' => 9,
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
'comment' => 'Test Field'
)
)
hai hàm addColumn này khác nhau và chúng cũng là các phương thức của các lớp khác nhau và chúng làm tôi buồn mỗi khi tôi cần thay đổi cú pháp.
Vì vậy, đây là câu hỏi, có cách nào để cập nhật bảng hiện có bằng cách sử dụng thể hiện của lớp Varien_Db_Ddl_Table không?