在Sails v.0.10.x中设置数据库连接以供生产使用的正确方法是什么?当我在生产模式(环境)中启动我的应用程序时,我希望Sails使用我在production.js中引用的连接,但它没有。它似乎始终使用默认连接 - ' localDiskDb'。
但是,当我在开发模式(环境)中启动sails时,它确实使用了config / development.js中指定的连接,正如我所期望的那样。
更新
注意:当我写下production.js的位置时,我错了。它在/config/env/production.js就像sgress454所说的那样。实际上,这个文件是由生成器创建的,放在正确的位置,我没有改变它。
config / env / production.js 如下所示:
// config/env/production.js
module.exports = {
connection: 'mongo_production'
};
config / models.js 如下所示:
// config/models.js
module.exports.models = {
// connection: 'localDiskDb'
};
config / connections.js 如下所示:
// config/connections.js
module.exports.connections = {
mongo_development: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: '',
password: '',
database: 'my_local_db'
},
mongo_production: {
adapter: 'sails-mongo',
url: 'mongodb://me:mypw@foobar.mongohq.com:10052/my_production_db'
}
};
答案 0 :(得分:2)
这里有几个问题:
connection
配置密钥来更改模型的默认连接;它必须是models.connection
。将两者放在一起,你需要一个 config / env / production.js 文件,如下所示:
module.exports = {
models: {
connection: 'mongo_production'
}
};
然后,在生产模式下提升时,模型默认使用mongo_production
连接。
答案 1 :(得分:0)
在sails版本0.12中,config / env文件夹下将有两个env文件。 因此,我们可以在这两个文件中编写特定于模式(生产/开发)的配置 为了在特定模式下运行我们的风帆应用,我们必须遵循以下步骤:
第1步) 在 config / local.js 文件
中module.exports = {
// port: process.env.PORT || 1337, // comment this line if you want to set the different ports for different modes
environment: process.env.NODE_ENV || 'development'
};
步骤2)在 env / developement.js 文件中 编写特定于开发的配置。
module.exports = {
port: 8080, // will change from default port 1337 to 8080
models: {
connection: 'developement_db',
migrate: 'alter'
}
};
步骤3)在 env / production.js 文件中 编写特定于生产的配置。
module.exports = {
port: 9090, // will change from default port 1337 to 9090
models: {
connection: 'production_db',
migrate: 'safe'
}
};
步骤4)以特定模式运行风帆应用
以生产模式运行
<强> $ NODE_ENV=production npm start
强>
Sails将在端口9090上运行
以开发模式运行
<强> $ NODE_ENV=developement npm start
强>
Sails将在端口8080上运行