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