【问题标题】:Using sequelize.js to interface against existing database?使用 sequelize.js 与现有数据库进行交互?
【发布时间】:2015-06-03 20:42:22
【问题描述】:

我目前在一个项目中工作,我们的 Node.js 服务器将针对现有的 MySQL 数据库执行大量交互。因此,我想知道 Sequelize 是否是一个很好的数据库接口库。据我了解,它最常被用作数据库的主控。但在我的情况下,它只有选择、插入、删除访问权限,而没有修改和创建表的访问权限等。 Sequelize 是否支持这种与数据库交互的方法?

如果 Sequelize 确实适用于此,我需要禁用哪些设置才不会遇到太多麻烦?在阅读了他们的文档后,我找不到任何全局设置将其变成一个简单的界面工具。时间戳等可以在表定义上被禁用,但不是全局我所看到的。非常感谢任何输入。

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    这篇文章有很多问题,我会尽力一一解答:

    全局禁用时间戳:

    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 上提出更多问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      • 2013-03-15
      • 1970-01-01
      • 2016-01-17
      相关资源
      最近更新 更多