使用 sequelize.js 与现有数据库交互?
Using sequelize.js to interface against existing database?
我目前在一个项目中工作,我们的 Node.js 服务器将对现有的 MySQL 数据库执行大量交互。因此我想知道 Sequelize 是否是一个很好的数据库接口库。据我了解,它最常被用作数据库的主人。但在我的例子中,它将只有 select、插入、删除访问权限,而没有修改和创建 tables 等的访问权限。 Sequelize 是否支持这种与数据库交互的方法?
如果 Sequelize 确实对此很有用,我需要禁用哪些设置才能避免 运行 惹上大麻烦?阅读他们的文档后,我找不到任何全局设置来将它变成一个简单的界面工具。时间戳等可以在 table 定义中禁用,但不是我所看到的全局。非常感谢任何输入。
这里有很多问题post,我会尽量一一解答:
全局禁用时间戳:
new Sequelize(... ,{
define: {
timestamps: false
}
});
您可以将任何 define
选项传递给 sequelize 构造函数,它们将应用于对 sequelize.define
的所有调用
映射到现有数据库
我将在这里尝试描述一些常见情况:
我希望我的模型与我的数据库具有不同的名称table:
sequelize.define('name of model', attributes, {
tableName: 'name of table'
});
我的数据库列的名称与模型中的属性不同:
sequelize.define('name of model', {
name_of_attribute_in_model: {
type: ...
field: 'name of field in table'
}
});
我的主键不叫id:
sequelize.define('name of model', {
a_field_totally_not_called_id: {
primaryKey: true // also allows for composite primary keys, even though the support for composite keys accross associations is spotty
autoIncrement: true
}
});
我的外键叫法不同
X.belongsTo(Y, { foreignKey: 'something_bla' });
免责声明:我是 sequelize 的维护者 :)。总的来说,我认为我们对使用遗留数据库有很好的支持。欢迎在这里或 irc://irc.freenode.net#sequelizejs
上提出更多问题
我目前在一个项目中工作,我们的 Node.js 服务器将对现有的 MySQL 数据库执行大量交互。因此我想知道 Sequelize 是否是一个很好的数据库接口库。据我了解,它最常被用作数据库的主人。但在我的例子中,它将只有 select、插入、删除访问权限,而没有修改和创建 tables 等的访问权限。 Sequelize 是否支持这种与数据库交互的方法?
如果 Sequelize 确实对此很有用,我需要禁用哪些设置才能避免 运行 惹上大麻烦?阅读他们的文档后,我找不到任何全局设置来将它变成一个简单的界面工具。时间戳等可以在 table 定义中禁用,但不是我所看到的全局。非常感谢任何输入。
这里有很多问题post,我会尽量一一解答:
全局禁用时间戳:
new Sequelize(... ,{
define: {
timestamps: false
}
});
您可以将任何 define
选项传递给 sequelize 构造函数,它们将应用于对 sequelize.define
映射到现有数据库
我将在这里尝试描述一些常见情况:
我希望我的模型与我的数据库具有不同的名称table:
sequelize.define('name of model', attributes, {
tableName: 'name of table'
});
我的数据库列的名称与模型中的属性不同:
sequelize.define('name of model', {
name_of_attribute_in_model: {
type: ...
field: 'name of field in table'
}
});
我的主键不叫id:
sequelize.define('name of model', {
a_field_totally_not_called_id: {
primaryKey: true // also allows for composite primary keys, even though the support for composite keys accross associations is spotty
autoIncrement: true
}
});
我的外键叫法不同
X.belongsTo(Y, { foreignKey: 'something_bla' });
免责声明:我是 sequelize 的维护者 :)。总的来说,我认为我们对使用遗留数据库有很好的支持。欢迎在这里或 irc://irc.freenode.net#sequelizejs
上提出更多问题