Migrating from Non-Docker 6.0 to Docker 7.0

#1

We’ve been successfully using the non-Docker version of Redash and have been keeping it updated. Currently on version 6, but I’d like to upgrade to version 7 and it seems like moving to Docker makes the most sense.

Getting the docker instance up on the server was trivial, but I’m having a brutal time getting my postgres database moved over. I’m not as familiar with PG, but it seems the core issues are:

  1. Which version of a dump to make from the current live 6.0 version?
  2. How do I import that into the new Docker version? The v6 database seems to be named “redash” and the docker database seems to be named “postgres”

I’ve tried various versions of the dumps and imports from Googling around and the closest I’ve gotten is to have the import run with a few redash/postgres errors and but then have the app error on login.

Is there a recommended way to get from v6 to v7 on Docker with the database? I’m at a bit of a loss here.

#2

Thinking about this in a general sense, I’d kind of expect you could do something like:

  1. Set up a fresh Docker instance (v7) using the setup.sh script
    • This creates a PG database in /opt/redash/postgres-data
  2. Shut down the running docker containers
    • docker-compose down
  3. Manually clear out all of the tables, sequences, indexes (etc) from the PG database
    • Probably need to start the PG container, then log into it manually with psql and do a bunch of drop table ... things.
  4. Import the database dump you did of Redash 6.0 into this manually emptied database
    • psql database_name < your_database_dump.sql
  5. Run the Redash database upgrade command, to upgrade the database from 6.0 to 7.0
    • docker-compose run --rm server manage db upgrade
  6. Start the docker services
    • docker-compose up -d

Bearing in mind I’ve not done this, tried it, etc.

In my head the concept sounds ok though. If it works it could probably be optimised somewhat too (eg maybe just drop the database and remake another one in its place).
:wink:

#3

This process worked. The only change I had to make was to the env for the redash docker instance as the database from 6.0 was “redash” vs “postgres” but it was a simple tweak and things seem to be working OK in initial testing.

@justinclift Thank you for the help!

1 Like
#4

Awesome, glad it worked. :slight_smile: