Open
Description
I'm submitting a...
- Bug reportFeature requestQuestion
Current behavior
running db-migrate
with DATABASE_URL
defined does not ignore defaultEnv
from .db-migraterc
Expected behavior
running db-migrate
with DATABASE_URL
respects that value and doesn't try to read defaultEnv
from .db-migraterc
Minimal reproduction of the problem with instructions
export DATABASE_URL=mysql://<some-valid-connection-string>
- create a
.db-migraterc
with adefaultEnv
configured. I chose local instead of dev for my example. - Run
db-migrate
. - You will see something like "environment 'local' is not defined"
What is the motivation / use case for changing the behavior?
When setting database URL, the intent is that it is defining everything about your environment. To respect the defaultEnv
setting from .db-migraterc
seems to contradict that
Environment
db-migrate version: 0.11.1
plugins with versions: unknown, don't think I'm using plugins?
db-migrate driver with versions:
mysql 1.1.10
Additional information:
- Node version: 8.9.4
- Platform: MacOS 10.13
Others:
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Activity
levino commentedon May 3, 2018
Actually I think the
'DATABASE_URL'
is totally ignored. I wanted to use it to override mydatabase.json
but cannot get it to work.wzrdtales commentedon May 8, 2018
I will check that back thanks for reporting. Environment variables should be always favoured before anything else.
jirkadev commentedon May 31, 2018
I run into similar problem with mongodb url, escaping connection string by double quotes worked for me.
export DATABASE_URL="..."
bill-kitsune commentedon Sep 26, 2018
I have a PR out for this, but there is also a work-around.
@levino my case sounded a lot like yours.
In your database.json you do the following:
{ "heroku": { "ENV": "DATABASE_URL" } }
Then run the migrate command with
--env heroku
it should work.