Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting environment variable in Heroku (via powershell) with special characters

Django 1.8, Heroku, Powershell.

I'm trying to set an Environment Variable for my django secret key in Heroku:

(venv) PS WORKFOLDER> heroku config:set SECRET_KEY=eoik6-&dnr9elgmrt7-%3hu_&37$3hg!9c6x!^khjr3!z*z&b4

I'm getting this error msg (3 times - since I have 3 ampersands in the string):

At line:1 char:77
+ heroku config:set SECRET_KEY=eoik6-&dnr9elgmrt7-%3hu_&37$3hg!9c6x!^khjr3!z*z&b4
+                                                                             ~
The ampersand (&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double
quotation marks ("&") to pass it as part of a string.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : AmpersandNotAllowed

When I tried the suggested solution (to put double quotes around the ampersands):

(venv) PS WORKFOLDER> heroku config:set SECRET_KEY=eoik6-"&"dnr9elgmrt7-%3hu_"&"37$3hg!9c6x!^khjr3!z*z"&"b4

I got this error:

SECRET_KEY: eoik6-
'dnr9elgmrt7-%3hu_' is not recognized as an internal or external command, operable program or batch file.
'37$3hg!9c6x!^khjr3!z*z' is not recognized as an internal or external command, operable program or batch file.
'b4' is not recognized as an internal or external command, operable program or batch file.

I also tried escaping with slash, putting quotes around the whole string, etc. Same result. So how can I set my environment variable?

like image 453
woodduck Avatar asked Sep 02 '25 05:09

woodduck


1 Answers

I just tried a few things and it works when you put single quotes around the whole VALUE (and double quotes around the ampersands):

heroku config:set SECRET_KEY='eoik6-"&"dnr9elgmrt7-%3hu_"&"37$3hg!9c6x!^khjr3!z*z"&"b4'

verifiable by the command heroku config

like image 173
woodduck Avatar answered Sep 04 '25 23:09

woodduck