簡體   English   中英

CakePHP 3.x數據庫遷移插件:有沒有辦法更改表字段?

[英]CakePHP 3.x Database Migration Plugin: Is there a way to Change a table field?

我試圖找出如何使用CakePHP Migrations插件最好地修改MySQL Table的現有列。 我不需要添加或刪除列,我只想修改字符串列的長度。

目前,該列被定義為varchar(50) ; 我正在重新調整列,並希望將其定義為varchar(2000)

遷移的目標是成為典型Web服務器上標准CakePHP Web應用程序安裝的自動部署的一部分。

我可以說,看起來使用遷移插件實現此目的的唯一方法(除了ALTER語句之外)將是:

  1. 重命名列
  2. 添加新列
  3. 將現有數據移動/復制到新列
  4. 放下舊欄目

也許我錯過了文檔和無數教程中的討論以及如何以更好的方式實現這一目標,但這似乎是一種麻煩且自我挫敗的方法。

我已經完成了CakePHP Migration Plugin的文檔Phinx的文檔,但是我沒有看到推薦的方法來進行這種更改。 我很感激任何輸入。

不幸的是,Phinx文檔並不完整,似乎有各種未記錄的方法,比如你正在尋找的方法: \\Phinx\\Db\\Table::changeColumn()

以下應該有效

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM