我的PHP应用程序具有以下表结构
CREATE TABLE IF NOT EXISTS `artist_has_fans` (
`artist_id` int(11) NOT NULL,
`fan_id` int(11) NOT NULL,
PRIMARY KEY (`artist_id`,`fan_id`),
KEY `fk_artist_has_artist_artist2` (`fan_id`),
KEY `fk_artist_has_artist_artist1` (`artist_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
我需要在rails中编写迁移,以便表具有自动增量的主键ID。 其次,因为表已经有一些数据我需要为id列插入数据。 然后我需要从现有列中删除主键。
感谢任何有关编写迁移的帮助。
答案 0 :(得分:2)
在查看上面的内容时,它看起来就像一个连接表。您是否计划为其添加其他属性,或者您只是想让它与Rails一起使用?你可以在rails中使用has_and_belongs_to_many
关系,你不需要ID字段。
下面的内容应该无需修改表格。
class Artist < ActiveRecord::Base
...
has_and_belongs_to_many :fans, :join_table => 'artist_has_fans'
end
但是如果你想改变表来在mysql中添加主键
def_up
execute <<-SQL
ALTER TABLE artist_has_fans ADD id INT PRIMARY KEY AUTO_INCREMENT;
SQL
end
那应该创建id并为所有现有行添加值