Cách restore và backup database postgres trong django với docker. Lưu ý project này sử dụng docker
Backup - sao lưu database
Ta thực hiện lệnh:
docker exec -t <db_container id> pg_dumpall -c -U <username> > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
Lưu ý: dump_date +%d-%m-%Y""%H%M_%S.sql là tên file backup( Vd : dump_17-04-2021_23_4_12.sql)
Ví dụ:
docker exec -t 4534523234 pg_dumpall -c -U usernamecuaban > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
Restore - khôi phục database
Ta làm theo các bước:
- Đầu tiên down các container đang chạy docker compose:
docker-compose down
- Tiếp theo xóa các ổ đĩa (volume) của db đang chạy:
docker volume rm <volume_name>
- Tạo docker db volume
docker-compose up -d <name_service>
Ví dụ:
docker-compose up -d db
<name_service> là tên của service db trong file docker-compose.yaml
Nhập data ở sql vào :
cat <sqlfile.sql> | docker exec -i <container id> psql -U <username> -d <dbname>
ví dụ:
cat app-db-2018-11-16.sql | docker exec -i e1a2a1e3ab89 psql -U postgres -d postgres