首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有键长度的键规范中使用的Rails BLOB/TEXT列

问在没有键长度的键规范中使用的Rails BLOB/TEXT列
EN

Stack Overflow用户
提问于 2012-04-10 23:58:21
回答 1查看 6.6K关注 0票数 6

我正在尝试运行一个rails迁移,我看到错误"BLOB/TEXT column used in key specification without a key length“……但是,我在迁移类中指定了长度。在从迁移生成SQL语句时,Rails似乎忽略了这一点。有什么线索吗?

下面是我的迁移类:

代码语言:javascript
复制
class AddIndexToAccounts < ActiveRecord::Migration
def self.up
  add_index :TACCOUNT, :NAMEX, :length => 5
end
def self.down
  remove_index :TACCOUNT, :NAMEX
end
end

这是错误输出。它似乎已经看到了长度规范,但在它生成的SQL语句中并没有出现:

代码语言:javascript
复制
** [out :: 192.168.10.7] -- add_index(:TACCOUNT, :NAMEX, {:length=>5})
** [out :: 192.168.10.7] rake aborted!
** [out :: 192.168.10.7] An error has occurred, all later migrations canceled:
** [out :: 192.168.10.7] 
** [out :: 192.168.10.7] Mysql::Error: BLOB/TEXT column 'NAMEX' used in key specification without a key length: CREATE  INDEX `index_TACCOUNT_on_NAMEX` ON `TACCOUNT` (`NAMEX`)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-11 06:21:13

你可以试着说得更具体一些,看看这是否能让它正常工作:

代码语言:javascript
复制
add_index :TACCOUNT, :NAMEX, :length => { :NAMEX => 5 }

作为最后的手段,您可以通过调整不正确的ADD INDEX语句并在正确的语句上使用execute,直接使用SQL以“硬的方式”创建索引。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10092188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档