Skip to content

setting DATABASE_URL doesn't ignore defaultEnv from .db-migraterc #564

Open
@gudatcomputers

Description

@gudatcomputers

I'm submitting a...

  • Bug report
    Feature request
    Question

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

  1. export DATABASE_URL=mysql://<some-valid-connection-string>
  2. create a .db-migraterc with a defaultEnv configured. I chose local instead of dev for my example.
  3. Run db-migrate.
  4. 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

levino commented on May 3, 2018

@levino

Actually I think the 'DATABASE_URL' is totally ignored. I wanted to use it to override my database.json but cannot get it to work.

wzrdtales

wzrdtales commented on May 8, 2018

@wzrdtales
Member

I will check that back thanks for reporting. Environment variables should be always favoured before anything else.

jirkadev

jirkadev commented on May 31, 2018

@jirkadev

I run into similar problem with mongodb url, escaping connection string by double quotes worked for me. export DATABASE_URL="..."

bill-kitsune

bill-kitsune commented on Sep 26, 2018

@bill-kitsune

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @levino@wzrdtales@jirkadev@gudatcomputers@bill-kitsune

      Issue actions

        setting DATABASE_URL doesn't ignore defaultEnv from .db-migraterc · Issue #564 · db-migrate/node-db-migrate