【发布时间】:2017-09-20 01:34:35
【问题描述】:
能否使用 URI 或将凭据(主机、用户、密码和数据库)合并到一个字符串中的 URL 来配置sails.js 数据库连接?还是需要在配置中将它们单独分配为自己的键值对?
在开发过程中,我已将sails.js 应用程序配置为使用环境变量作为数据库凭据,如下所示:
在connections.js中:
someSqlDatabase: {
host: process.env.dbHost,
user: process.env.dbUserName,
password: process.env.dbPassword,
database: process.env.db,
port: 5432,
ssl: true,
adapter: 'sails-postgresql'
这个工作用于连接到我分配给我的项目的 heroku-postgresql 资源,我可以在我的 heroku 实例中手动设置“配置变量”,我可以使用它与我本地实例中的环境变量相同。我的意思是我可以转到数据库资源的 heroku 客户端页面,将其凭据(主机、数据库、用户和密码)分别复制到 heroku 应用程序的配置变量中。
问题在于 heroku 会定期更改凭据,并且我手动复制的配置变量将变得过时,并且在发生这种情况时需要重新粘贴。显然,这不是一个理想的解决方案。
Heroku 会自动为资源提供一个配置变量,称为 DATABASE_URL,如下所示:
"postgres://<user>:<password>@<host>:<port>/<database>"
当凭据更改时,它应该会自动更新。 我的问题是我不知道如何配置sails.js 连接来使用这个url,而不是单独的“主机”、“用户”、“密码”和“数据库”键/值对连接配置。
我尝试使用省略单个键并仅使用“主机”的配置,例如:
someSqlDatabase: {
host: process.env.DATABASE_URL,
ssl: true,
adapter: 'sails-postgresql'
}
但是这个连接失败了。我见过这种称为 URI 的字符串,并尝试过长镜头配置:
someSqlDatabase: {
uri: proccess.env.DATABASE_URL
ssl: true,
adapter: 'sails-postgresql'
}
但这也失败了。有没有办法配置与自动使用最新凭据的 heroku postgresql 数据库的sails-js 连接? (我使用的是sails v0.12.3)
【问题讨论】:
标签: postgresql heroku configuration environment-variables sails.js