【发布时间】:2010-10-13 13:00:39
【问题描述】:
如何正确创建 Rails 迁移,以便在 MySQL 中将表更改为 MyISAM?目前是 InnoDB。运行原始执行语句会更改表,但不会更新 db/schema.rb,因此当在测试环境中重新创建表时,它会返回到 InnoDB 并且我的全文搜索失败。
如何更改/添加迁移,以便将现有表修改为 MyISAM 并更新 schema.rb,以便相应地更新我的数据库和相应的测试数据库?
【问题讨论】:
-
为什么不想更新 schema.rb ?您可以编辑 schema.rb 并修改 create_table create_table(:table, :options => 'ENGINE=MyISAM DEFAULT CHARSET=utf8')
-
Schema.rb 将被覆盖,并且它不会包含将表添加到 MyISAM 的更新。
-
你想要这个只用于单个表还是数据库中的所有表?如果所有表都可以让
create_table默认为 MyISAM。 -
单表,需要Mysql支持FULLTEXT搜索。
标签: ruby-on-rails ruby activerecord