Skip to content

Commit

Permalink
Fixes issue #993 - Add SQLDumpRestoration.md file
Browse files Browse the repository at this point in the history
  • Loading branch information
Dawadi Kiran committed Sep 2, 2024
1 parent 4eb0b6d commit 71c8fb4
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions SQLDumpRestoration.md
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.

0 comments on commit 71c8fb4

Please sign in to comment.