Populate DB with production dataΒΆ

While setting your local development environment, you might want to populate your database with production data. This document describes how to import a databse dump when using the docker-compose stack provided together with Copr source code (see Contribute).

First, obtain some SQL dump from the production instance. They are generated daily.

https://copr.fedorainfracloud.org/db_dumps/

Stop your frontend container because it holds a session to your database:

$ docker-compose stop frontend

Copy the db dump into the database container:

$ docker cp copr_db-2021-09-02_03-16.gz copr_database_1:/tmp/

Then log into the machine:

$ docker exec -it copr_database_1 /bin/bash

Import the database dump:

bash-4.2$ dropdb coprdb
bash-4.2$ createdb coprdb
bash-4.2$ cat /tmp/copr_db-2021-09-02_03-16.gz | gunzip | psql coprdb

Cancel all unfinished builds to avoid overloading your machine with unnecessary builds:

bash-4.2$ psql coprdb
coprdb=# UPDATE build SET source_status=2 WHERE source_status IN (3, 4, 6, 7, 9);
coprdb=# UPDATE build_chroot SET status=2 WHERE status IN (3, 4, 6, 7, 9);

When running frontend from main updating the database schema may be necessary:

$ docker exec -it copr_frontend_1 /bin/bash
[copr-fe@frontend /]$ cd /opt/copr/frontend/coprs_frontend/
[copr-fe@frontend coprs_frontend]$ alembic-3 upgrade head
[copr-fe@frontend coprs_frontend]$ exit

Finally, start the frontend container again:

$ docker-compose start frontend