使用sequelize.js接口与现有的数据库?

我目前正在一个项目中,我们的Node.js服务器将对现有的MySQL数据库执行大量的交互。 因此,我想知道如果Sequelize是一个很好的库来连接数据库。 从我读过的内容来看,它最常用作数据库的主人。 但在我的情况下,它只会有select,插入,删除访问权限,不能修改和创build表格等。 Sequelize是否支持这种与数据库交互的方法?

如果Sequelize确实对此有效,那么我需要禁用哪些设置才不会遇到麻烦? 在阅读他们的文档后,我找不到任何全局设置,把它变成一个简单的界面工具。 时间戳等可以禁用表定义,但不是全局我看到的。 任何input,不胜感激。

       

网上收集的解决方案 "使用sequelize.js接口与现有的数据库?"

在这篇文章中有很多的问题,我会尽力回答他们:

全局禁用时间戳:

new Sequelize(... ,{ define: { timestamps: false } }); 

您可以将任何define选项传递给sequelize构造函数,并将它们应用于所有调用sequelize.define

映射到现有的数据库

我会尝试在这里描述一些常见的情况:

我想我的模型有一个不同的名字我的数据库表:

 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' }); 

免责声明:我是一个续集维护者:)。 总的来说,我认为我们对使用旧数据库有很好的支持。 随意在这里或在irc://irc.freenode.net#sequelizejs上提出更多的问题