我想将varchar更改为text并删除商店表中的备注列。我怎样才能在fuelphp中迁移它
我创建旧迁移文件:004_create_shops.php
'address' => array('constraint' => 300, 'type' => 'varchar'),
'remarks' => array('constraint' => 200, 'type' => 'varchar'),
答案 0 :(得分:1)
如果您的应用程序处于繁重的开发阶段(这意味着这是一个相对较新的迁移,并未提交到任何VCS),那么您只需从迁移中删除该行,并使用具有GUI的客户端从数据库中删除该列。从控制台:
ALTER TABLE my_table DROP COLUMN remarks;
如果此文件已添加到您的VCS,那么您不应再直接编辑此文件。历史应保持一致。如果有人签出旧版本,他/她可能会遇到麻烦。
您应该添加新迁移。确保使用正确的代码填充上部和下部。
向上:
\DBUtil::drop_fields('my_table', 'remarks');
下:
\DBUtil::add_fields('my_table', array(
'remarks' => array('constraint' => 200, 'type' => 'varchar'),
));
需要添加向下部分,以便在向上或向下迁移时数据库保持一致。
您必须对类型更改执行相同的操作:
\DBUtil::modify_fields
,它与[{1}}具有相同的方法签名)您可以查看文档here