-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes issue #993 - Add SQLDumpRestoration.md file
- Loading branch information
Dawadi Kiran
committed
Sep 2, 2024
1 parent
4eb0b6d
commit 71c8fb4
Showing
1 changed file
with
81 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
## Restoring the Database from SQL Dump | ||
|
||
We generally load a database backup from a JSON file by using the following command. | ||
|
||
``` | ||
docker-compose -f local.yml run --rm django python manage.py loaddata backup.json | ||
``` | ||
|
||
However, if the JSON file is particularly large (>1.5GB), Docker might struggle with this method. In such cases, you can use SQL dump and restore commands as an alternative. | ||
|
||
### Steps for Using SQL Dump and Restore | ||
|
||
1. Begin by starting only the PostgreSQL container. This prevents the Django container from making changes while the PostgreSQL container is starting up. | ||
|
||
``` | ||
docker-compose -f local.yml up postgres | ||
``` | ||
|
||
2. Find the container ID using `docker ps`, then enter the PostgreSQL container to execute commands. | ||
|
||
``` | ||
$ docker ps | ||
CONTAINER ID IMAGE COMMAND | ||
23d33f22cc43 sde_indexing_helper_production_postgres "docker-entrypoint.s…" | ||
$ docker exec -it 23d33f22cc43 bash | ||
``` | ||
|
||
3. Create a connection to the database. | ||
|
||
``` | ||
psql -U VnUvMKBSdkoFIETgLongnxYHrYVJKufn -d sde_indexing_helper | ||
``` | ||
|
||
4. Ensure that the database `sde_indexing_helper` is empty. | ||
|
||
``` | ||
sde_indexing_helper-# \c | ||
You are now connected to database "sde_indexing_helper" as user "VnUvMKBSdk...". | ||
sde_indexing_helper-# \dt | ||
Did not find any relations. | ||
``` | ||
|
||
If the database is not empty, delete its contents to create a fresh database: | ||
|
||
``` | ||
sde_indexing_helper=# \c postgres | ||
You are now connected to database "postgres" as user "VnUvMKBSdkoFIETgLongnxYHrYVJKufn". | ||
postgres=# DROP DATABASE sde_indexing_helper; | ||
DROP DATABASE | ||
postgres=# CREATE DATABASE sde_indexing_helper; | ||
CREATE DATABASE | ||
``` | ||
|
||
5. Transfer the backup SQL dump (`backup.sql`) from your local machine to the PostgreSQL container. | ||
|
||
``` | ||
docker cp /local/path/backup.sql 23d33f22cc43:/ | ||
``` | ||
|
||
6. Import the SQL dump into the PostgreSQL container. | ||
|
||
``` | ||
psql -U VnUvMKBSdkoFIETgLongnxYHrYVJKufn -d sde_indexing_helper -f backup.sql | ||
``` | ||
|
||
**Note**: To create a SQL dump of your PostgreSQL database, use the following command: | ||
|
||
``` | ||
pg_dump -U VnUvMKBSdkoFIETgLongnxYHrYVJKufn -W -F p -f backup.sql sde_indexing_helper | ||
``` | ||
|
||
7. Bring up all containers at once, and create a superuser account for logging in. | ||
|
||
``` | ||
docker-compose -f local.yml up | ||
docker-compose -f local.yml run --rm django python manage.py createsuperuser | ||
``` | ||
|
||
8. Log in to the SDE Indexing Helper frontend to ensure that all data has been correctly populated in the UI. |