【发布时间】:2023-03-22 08:14:01
【问题描述】:
我正在 Yii 中编写一个 CDbMigration 来创建一个新表,其中包含一个现有表的外键。这很容易。我还想获取旧表中的每个条目并将其 id、缩略图和 myfunction(title) 复制到新表中,然后再将缩略图放入旧表中。
迁移前的 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;
之后我会有一个新表和没有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;
另外,myfunction 是一个转换字符串的函数。
现在我已经明白,在迁移中使用 CActiveRecord 是不好的做法,但我的 SQL 技能还不够敏锐,无法知道是否有 SQL 命令来执行我想要的迁移。或者这是我应该在脚本中单独复制数据的东西(即不是我应该使用迁移的东西)?
【问题讨论】:
标签: mysql sql yii database-migration