Как установить переменные среды на приложение heroku для узлов и подключиться к базе данных postgresql?
Я знаю, что есть те же/похожие вопросы о переполнении стека, и я тоже прочитал документацию. Я просто все еще не понимаю ANYTHING-, как установить эти переменные и WHERE !! установить их.
Мой файл env/production.js:
module.exports = {
"DATABASE_URI": process.env.DATABASE_URI,
"SESSION_SECRET": process.env.SESSION_SECRET,
"TWITTER": {
"consumerKey": process.env.TWITTER_CONSUMER_KEY,
"consumerSecret": process.env.TWITTER_CONSUMER_SECRET,
"callbackUrl": process.env.TWITTER_CALLBACK
},
"FACEBOOK": {
"clientID": process.env.FACEBOOK_APP_ID,
"clientSecret": process.env.FACEBOOK_CLIENT_SECRET,
"callbackURL": process.env.FACEBOOK_CALLBACK_URL
},
"GOOGLE": {
"clientID": process.env.GOOGLE_CLIENT_ID,
"clientSecret": process.env.GOOGLE_CLIENT_SECRET,
"callbackURL": process.env.GOOGLE_CALLBACK_URL
},
"LOGGING": true
};
В моем файле env/development.js я устанавливаю переменные (связанные с моим postgres/localhost/xxx). Нужно ли устанавливать их в герою для всех (Google, Facebook и т.д.) Или просто для базы данных, так как мне нужно было создать ее с герокой? Я оставляю ссылку на свою локальную базу данных в своем файле разработки и отдельно ссылку на базу данных heroku?
Я даже не знаю, могу ли я сделать это из командной строки?! В документации написано: heroku config: получите CONFIG-VAR-NAME -s >>.env, так что бы это была конфигурация heroku: получите CONFIG-NAME OF MY HEROKU DATABASE -s >>.env?
Я развертываю в первый раз и так запутался! Помогите :)
Ответы
Ответ 1
Согласно документации вы можете использовать heroku CLI
$ heroku config:set DATABASE_URI=database_uri_here
$ heroku config:set SESSION_SECRET=session_secret
... and so on for each variable,
или вы можете использовать UI https://dashboard-classic.heroku.com/apps/ {your-app-name}/settings и предоставлять одинаковые переменные через веб-интерфейс, как я упоминал выше.
NODE_ENV=production
не обрабатывается специально heroku
, поэтому вам нужно предоставить его, а также любую другую переменную env
ps: строго говоря, этот вопрос действительно не принадлежит SO, поскольку он не связан с программированием. Возможно, его нужно перенести в SU
Ответ 2
Использование:
heroku config:set $(cat .env | sed '/^$/d; /#[[:print:]]*$/d')
установить свой конфиг из .env файла.
Ответ 3
В частности, переменные подключения к базе данных не будут работать через переменные Heroku env.
Я бы предложил использовать dotenv и установить переменные для файла, установив Heroku CLI, а затем использовать bash:
heroku login
heroku run bash -a app_name
создайте файл .env
, если его там нет, и добавьте в него значения
touch .env
echo "ENV_VAR=value" >> .env
подтвердить запись в файле
cat .env