подключаю базу:
import { Pool } from 'pg';
import config from './../config';
export default new Pool({
connectionString: config.db_prod.connectionString,
ssl: true,
});
Мой файл конфигурации:
export default {
db_dev: {
connectionString: 'postgres://sfp...',
},
db_prod: {
connectionString: 'postgres://woy...',
},
...
}
Мой .gitlab-ci.yml
файл:
image: node:latest
stages:
- production
- development
cache:
paths:
- node_modules/
production:
type: deploy
stage: production
image: ruby:latest
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=deploy-node-aspp-with-gitlab --api-key=$HEROKU_PRODUCTION_API_KEY
artifacts:
paths:
- node_modules/
only:
- master
development:
type: deploy
stage: development
image: ruby:latest
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=deploy-node-aspp-with-gitlab-d --api-key=$HEROKU_STAGING_API_KEY
artifacts:
paths:
- node_modules/
only:
- dev
Мой package.json
файл:
{
...
"main": "index.js",
"scripts": {
"start": "nodemon --exec babel-node src/index.js"
},
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.2.2",
"@babel/node": "^7.2.2",
"@babel/preset-env": "^7.3.1",
"chai": "^4.2.0",
"chai-http": "^4.2.1",
"faker": "^4.1.0",
"mocha": "^6.1.3",
"nodemon": "^1.18.10"
},
"dependencies": {
"aws-sdk": "^2.398.0",
"bcrypt": "^3.0.3",
"body-parser": "^1.18.3",
"cron": "^1.7.0",
"express": "^4.16.4",
"express-validator": "^5.3.1",
"firebase-admin": "^7.2.0",
"generate-password": "^1.4.1",
"handlebars": "^4.1.2",
"jsonwebtoken": "^8.4.0",
"moment": "^2.24.0",
"morgan": "^1.9.1",
"multer": "^1.4.1",
"node-gcm": "^1.0.2",
"nodemailer": "^6.1.0",
"pg": "^7.8.0",
"uuid": "^3.3.2"
}
}
Мне нужно, когда я загружаю в хранилище в ветке dev
, чтобы строка соединения была db_dev
, когда я загружаю в хранилище в ветке master
, чтобы строка соединения была db_prod
.
Мне не мне вручную с db_dev
на db_prod
и обратно.
Как мне это реализовать?