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