Rails 运行 rake db:migrate 提示时候 specified key was too long

suchiva · 2013年07月30日 · 最后由 zhuf 回复于 2013年07月31日 · 3054 次阅读

建表的时候,运行 rake db:migrate 提示时候,mysql 提示:

我在网上查了好多,都没搞定,一种说修改 mysql 默认引擎,我修改撑 myisam 也不行, 我的编码是 utf-8,改成 GBK 固然好,但是前段好像都是 UTF-8,改不现实;我这个字段是一个 user,里面自定义了一些,然后又用 devise,里面我把里面的 注释掉就可以了,我不知道什么原因还有如何解决还请指点!!!

字段太长了,写着呢!

mysql 的索引字段长度不能超过 256 的,你可以写成 users(255),如果是 utf8mb4 编码的表的话,用 users(191)

#2 楼 @zhuf 我需要这么长的字段啊~

#1 楼 @changming 知道字段长啊,但是字段需要啊~

#4 楼 @suchiva 那就只能把对字段做前缀索引了,即 users(255),其他就没办法了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号