Mysql 如何克隆dev数据库以使表';发动机保持不变
当前运行rake db:test:clone时,其中一个表应该是MyISAM,而不是InnoDB。只需在迁移中使用SQL即可:Mysql 如何克隆dev数据库以使表';发动机保持不变,mysql,ruby-on-rails,ruby-on-rails-4,Mysql,Ruby On Rails,Ruby On Rails 4,当前运行rake db:test:clone时,其中一个表应该是MyISAM,而不是InnoDB。只需在迁移中使用SQL即可: class ChangeStorageEngineOnT < ActiveRecord::Migration def up execute %Q{ ALTER TABLE t ENGINE = MYISAM; } end def down execute %Q{ ALTER TABLE t ENGIN
class ChangeStorageEngineOnT < ActiveRecord::Migration
def up
execute %Q{
ALTER TABLE t ENGINE = MYISAM;
}
end
def down
execute %Q{
ALTER TABLE t ENGINE = InnoDB;
}
end
end
class ChangeStorageEngineNot
我找到的解决方案是:
rakedb:test:clone_结构
这将正确克隆dev数据库,包括表的引擎。在Rails 4中测试。这确实会使表使用MyISAM引擎,但稍后执行rake db:schema:load Rails\u ENV=test会将表创建为InnoDB。schema.rb仍然没有显示该表是MyISAM。我认为您必须删除并重新创建该表,以便它“粘贴”在schema.rb中。请看这篇文章:谢谢你的评论。我改变了问题以反映我真正想要的。