Mysql 如何克隆dev数据库以使表';发动机保持不变

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

当前运行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 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中。请看这篇文章:谢谢你的评论。我改变了问题以反映我真正想要的。