Sequelize:camelCase属性名称但是postgres中的snake_case?

时间:2014-06-30 03:40:30

标签: node.js sequelize.js

var Project = sequelize.define('project', {
  someAttribute: {type: Sequelize.STRING, primaryKey: true },
}, {
  'freezeTableName': true
});

这是一个现有数据库,其中列名以蛇案some_attribute命名。但是,由于它是nodejs代码库,我想使用camelCase someAttribute

这可以用sequelize吗?

2 个答案:

答案 0 :(得分:6)

我知道这个问题有点陈旧,只是为未来的googlers发布这个答案。

您可以使用field属性覆盖列名称。

http://sequelize.readthedocs.org/en/latest/docs/models/

var Foo = sequelize.define('Foo', {
 // You can specify a custom field name via the "field" attribute:
 fieldWithUnderscores: { type: Sequelize.STRING, field: "field_with_underscores" }
})

答案 1 :(得分:0)

我认为你获得的唯一机会是覆盖模型中的getters / setter:

var Project = sequelize.define('project', {
  some_attribute: {type: Sequelize.STRING, primaryKey: true },
},
// getters and setters
getterMethods: {
  someAttribute: function(){return this.getDataValue("some_attribute");}
},
setterMethods: {
  someAttribute: function(v){this.setDataValue("some_attribute", v);}
},
{
  'freezeTableName': true
});