当我尝试sails lift 时我遇到了这个错误:

info: ·• Auto-migrating...  (drop) 
error: A hook (`orm`) failed to load! 
error: 
error: Error: ER_TOO_LONG_KEY: Specified key was too long; max key length is 767 bytes 

我现在只有一个模型:

module.exports = { 
 
    datastore: 'default', 
    tableName: 'sci_user', 
    attributes: { 
        email: { 
            type: 'string', 
            required: true, 
            unique: true 
        }, 
        password: { 
            type: 'string', 
            required: true 
        } 
    } 

它真的很简单,我是从文档中得到的。我不明白。这似乎是因为 unique: true

请您参考如下方法:

这是多种因素综合造成的,但最相关的是 sails-mysql 目前默认使用 utf8mb4 字符集作为字符串属性,以允许使用表情符号和其他扩展字符。我们正在开发一个补丁,使它成为可配置的而不是默认的,但与此同时,最快的解决方法是直接为您的属性声明 columnType:

module.exports = {

datastore: 'default', 
tableName: 'sci_user', 
attributes: { 
    email: { 
        type: 'string', 
        required: true, 
        unique: true, 
        columnType: 'varchar' 
    }, 
    password: { 
        type: 'string', 
        required: true, 
        columnType: 'varchar' 
    } 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!