如何在fuelphp中更改数据类型并从表中删除列?

时间:2015-07-09 02:53:22

标签: mysql fuelphp

我想将varchar更改为text并删除商店表中的备注列。我怎样才能在fuelphp中迁移它

我创建旧迁移文件:004_create_shops.php

'address' => array('constraint' => 300, 'type' => 'varchar'),
'remarks' => array('constraint' => 200, 'type' => 'varchar'),

1 个答案:

答案 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