我在dotenv文件中保存我的数据库配置。
我正在使用sequelize migration,它在config文件夹中有一个config.json文件:
{
"development": {
"username": "root",
"password": null,
"database": "test",
"host": "127.0.0.1",
"dialect": "postgres"
},
....
}
由于我在dotenv中进行了配置,我必须将其转换为js文件:
require('dotenv').config({ silent: env === 'production'})
const devConfig = {
dialect: 'postgres',
host: process.env.DB_HOST || 'localhost',
port: process.env.DB_PORT || 5432,
database: process.env.DB_NAME || '',
username: process.env.DB_USER || 'postgres',
password: process.env.DB_PASSWORD || '',
migrationStorageTableName: 'migrations'
};
module.exports = {
development: devConfig,
production: devConfig
};
但是如何运行迁移,配置不是JSON?
node_modules/.bin/sequelize db:migrate --config config/config.js
答案 0 :(得分:2)
如果您使用的是2.0版或更高版本#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/filters/passthrough.h>
#include <pcl/visualization/pcl_visualizer.h>
// Define min and max for X, Y and Z
float minX = -0.1, minY = -0.5, minZ = -2.5;
float maxX = +0.1, maxY = +0.5, maxZ = +2.5;
int main (int argc, char** argv)
{
pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr body (new pcl::PointCloud<pcl::PointXYZRGBA>);
pcl::io::loadPCDFile ("body.pcd", *body);
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr bodyFiltered (new pcl::PointCloud<pcl::PointXYZRGBA>);
pcl::PassThrough<pcl::PointXYZRGBA> filter;
filter.setInputCloud (body);
filter.setFilterFieldName ("x");
filter.setFilterLimits (minX, maxX);
filter.setFilterFieldName ("y");
filter.setFilterLimits (minY, maxY);
filter.setFilterFieldName ("z");
filter.setFilterLimits (minZ, maxZ);
filter.filter (*bodyFiltered);
viewer.addPointCloud (bodyFiltered,"body");
viewer.spin();
return 0;
}
是默认设置之一,那么这不应该是一个问题。
您还可以创建一个config/config.js
文件,如果您愿意,可以覆盖此路径和/或名称。它在“选项”下的the documentation中。
答案 1 :(得分:1)
我认为使用dotenv-cli来完成此任务的最佳方法。
.sequelizerc
文件。它应该看起来像这样:const path = require('path')
module.exports = {
config: path.resolve('config', 'config.js')
}
dotenv -e path/to/.env sequelize db:migrate
dotenv-cli将填充环境变量,然后运行命令,因此您的动态设置应该都可以与现有配置文件一起使用
答案 2 :(得分:1)
config.json
重命名为config.js
,并在其中调用环境变量。module.exports = {
development: {
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
dialect: 'postgres',
logging: false,
},
test: {
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
dialect: 'postgres',
logging: false,
},
production: {
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
host: process.env.DB_HOST,
dialect: 'postgres',
logging: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000,
},
},
};
.sequelizerc
文件:'use strict';
require('dotenv').config(); // don't forget to require dotenv
const path = require('path');
module.exports = {
'config': path.resolve('config', 'config.js'),
'models-path': path.resolve('models'),
'seeders-path': path.resolve('seeders'),
'migrations-path': path.resolve('migrations'),
};
sequelize db:migrate
答案 3 :(得分:0)
Sequelize确实在其文档中提到了这一点。您可以通过指定环境来运行migrations命令。
sequelize db:migrate --env production