【问题标题】:How to set the Application Name for a Sequelize application如何为 Sequelize 应用程序设置应用程序名称
【发布时间】:2021-02-12 09:42:31
【问题描述】:

我有一个使用 Sequelize 作为 ORM 的 nodejs 应用程序。我已经成功地将 Sequelize 连接到数据库,但我在文档中没有找到任何解释如何设置应用程序名称的内容。为了澄清我希望为我的应用程序的连接字符串设置一个唯一的应用程序名称属性。这样,当 DBA 查看流量时,他们可以从其余部分中挑选出我的应用程序的查询。

这是 Sequelize 甚至可以做到的事情吗?或者这需要在繁琐的层面上完成吗?如果做不到这一点,nodejs中有没有办法指定连接字符串属性?

【问题讨论】:

    标签: node.js sequelize.js tedious


    【解决方案1】:

    Tedious 允许使用 appName 配置参数设置应用名称。创建 Sequelize 连接时,您应该可以通过 dialectOptions 对象进行设置:

    var conn = new Sequelize('my_db', 'my_user', 'my_pass', {
      host: 'my_server',
      dialect: 'mssql',
    
      dialectOptions: {
        appName: 'my_app_name'
      }
    });
    

    【讨论】:

    • 感谢您的回答!在独立的 nodejs/sequelize 应用程序中,这 100% 有效。我尝试在带有sails-hook-sequelize 模块的sails 应用程序中使用它时遇到了问题。如果我找到该问题的解决方案,我会将其包含在此页面上。
    • 发布一个新问题并自己回答:)
    • 看起来你的答案也适用于sails-hook-sequelize。似乎我捕获应用程序名称的方法是错误的。使用 MS SQL Profiler,我能够看到更新后的应用程序名称。看到这个答案如何涵盖这两个问题,我删除了我上面提出的问题(40444535)
    • 我仍然觉得 application_name 很乏味,请你看看我的问题:stackoverflow.com/questions/56903706/…
    【解决方案2】:

    对于那些在寻找如何为 Postgres 设置名称时发现此问题的人,您可以在 dialectOptions 中使用 application_name,例如

    {
        username: process.env.DB_USER,
        password: process.env.DB_PASS,
        database: process.env.DB_NAME,
        port: process.env.DB_PORT,
        host: DB_HOST,
        dialect: 'postgresql',
        dialectOptions: {
            application_name: 'My Node App',
        },
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多