0
我正在Yii中編寫一個CDbMigration以創建一個具有外鍵的新表。這很容易。我還希望將舊錶格中的每個條目都放在舊錶格中,並在將縮略圖放入舊錶格之前將其ID,縮略圖和myfunction(標題)複製到新表格中。Yii DbMigration將數據移動到其他表
遷移之前的OLD_TABLE應該像(截)
CREATE TABLE IF NOT EXISTS `old_table` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`thumbnail` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
後,我將有一個NEW_TABLE和舊錶沒有thumbnail
CREATE TABLE IF NOT EXISTS `new_table` (
`old_id` int(11) unsigned NOT NULL, -- foreign key to old_table
`transformed_title` varchar(255) NOT NULL,
`thumbnail` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
此外,myfunctionis功能改造一個字符串。
現在我明白了,在遷移過程中使用CActiveRecord是不好的做法,但是我的SQL技能不夠清晰,無法知道是否有SQL命令來執行我想要的遷移。或者這是我應該單獨在腳本中複製數據的東西(即不是我應該使用遷移的東西)?
是的'myfunction'不是MySQL的,所以我猜這樣做不行,我決定只是寫代碼來選擇數據,然後在PHP中進行轉換,然後插入它。全部使用Yii查詢生成器。 – Matt 2012-01-11 02:30:54