2015-11-22 43 views
1

我試圖找出如何最好地使用CakePHP的遷移插件修改MySQL表的現有列。我不需要添加或刪除列,我只是想修改一個字符串列的長度。CakePHP 3.x數據庫遷移插件:有沒有辦法更改表字段?

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

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

近,我可以告訴,它看起來像的唯一途徑(不是ALTER聲明等)本使用遷移插件將做到:

  1. 重命名列
  2. 添加新列
  3. 移動/現有的數據複製到新列
  4. 刪除舊列

Pe的或許我已經錯過了關於文件和無數教程的討論,以及如何以更好的方式實現這一目標,但這似乎是一種繁瑣而自欺欺人的方法。

我已經通過了CakePHP Migration Plugin's documentationPhinx's documentation,但是我沒有看到針對此更改的推薦方法。我很欣賞任何對此的意見。

回答

4

不幸的是,Phinx文檔都不是完整的,似乎有各種無證方法,就像一個你正在尋找:\Phinx\Db\Table::changeColumn()

下面應該工作

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

這是完美的,感謝您的回覆迅速!這看起來像我正在尋找的! – Kingsolmn

+0

正是我需要的,像魅力一樣工作!感謝資源鏈接,讓我獲得一些很好的信息來解決我所遇到的無關問題。 – Kingsolmn

相關問題