How to carry out a pg_dump on Gigalixir?

I’m trying to dump my production db on gigalixir so I can use the data for my frontend design and iteration in my local development environment.

The documentation doesn’t explain how to do this beyond getting the connection parameters.

Then I believe we have to import the result into psql manually?

When I used Heroku in the past you could just run a single line from the command line and it would all be done.

Appreciate any help!

2 Likes

Here’s how I solved this.

When you run gigalixir pg it gives you the “url” field. Simply type pg_dump in terminal and paste the URL, then --file=file_name_you_want

pg_dump postgresql://username:password@host/database --file=my_dump.sql

Once it downloads simply run

psql -d myapp_dev -f my_dump.sql

myapp_dev being the name of your db in the dev.exs file.

Not sure if it matters, but before I did this I ran mix ecto.drop and mix ecto.create to start with a fresh db.

10 Likes

It wasn’t successful for me for some reason. I got the error

pg_dump [my_url] --file=dump.sql

pg_dump: error: out of memory
[1]    66280 segmentation fault  pg_dump  --file=dump.sql

Not sure if it’s because of restrictions or limited resources of the free-tier DB (even though I know that the “out of memory” message can sometimes be misleading and might not be the true cause of error).

I also get a similar error when trying to restore a local copy of the DB.

In fact even running gigalixir pg:psql gets me the same error:

psql: error: out of memory
[1]    88696 segmentation fault  gigalixir pg:psql

so I suspect it’s more to do with the restrictions of the free tier.