CakePHP 3.x数据库迁移插件:有没有办法更改表字段?

Kin*_*lmn 3 php cakephp database-migration cakephp-3.0 phinx

我试图找出如何使用CakePHP Migrations插件最好地修改MySQL Table的现有列.我不需要添加或删除列,我只想修改字符串列的长度.

目前该列被定义为varchar(50); 我正在重新调整列,并希望将其定义为varchar(2000).

迁移的目标是成为典型Web服务器上标准CakePHP Web应用程序安装的自动部署的一部分.

我可以说,看起来ALTER使用迁移插件实现此目的的唯一方法(除了语句之外)将是:

  1. 重命名列
  2. 添加新列
  3. 将现有数据移动/复制到新列
  4. 放下旧栏目

也许我错过了文档和无数教程中的讨论以及如何以更好的方式实现这一目标,但这似乎是一种麻烦且自我挫败的方法.

我已经完成了CakePHP Migration Plugin的文档Phinx的文档,但是我没有看到推荐的方法来进行这种更改.我很感激任何输入.

ndm*_*ndm 8

不幸的是,Phinx文档并不完整,似乎有各种未记录的方法,比如你正在寻找的方法: \Phinx\Db\Table::changeColumn()

以下应该有效

$table = $this->table('table_name');
$table->changeColumn('column_name', 'string', [
    'limit' => 2000
]);
$table->update();
Run Code Online (Sandbox Code Playgroud)