我刚刚学会了如何在Codeigniter中使用迁移。在全新环境中自动为您创建表固然很好,但是对现有表的结构更改呢?
如果我添加或删除列,该怎么办?有没有办法在不删除现有表的情况下自动执行此操作(这自然会导致数据丢失(。
如果要添加或删除列,只需使用 db forge 类: https://www.codeigniter.com/user_guide/database/forge.html
文档的这一部分介绍如何添加/删除列:https://www.codeigniter.com/user_guide/database/forge.html#modifying-tables
加:
$fields = array(
'preferences' => array('type' => 'TEXT')
);
$this->dbforge->add_column('table_name', $fields);
删除:
$this->dbforge->drop_column('table_name', 'column_to_drop');
您所要做的就是在迁移类的up
和down
函数中使用这些函数。