first commit
This commit is contained in:
54
helper.md
Normal file
54
helper.md
Normal file
@@ -0,0 +1,54 @@
|
||||
Create Back Up File
|
||||
docker exec -t phoenixDB pg_dump -U postgres -d phoenix > phoenix_backup.sql
|
||||
|
||||
# PostgreSQL Database Backup in Docker
|
||||
|
||||
## 🛠️ Backup Commands for `phoenixDB`
|
||||
|
||||
### 1️⃣ **Dump Database (Including DROP Statements)**
|
||||
```sh
|
||||
docker exec -t phoenixDB pg_dump -U postgres -d phoenix -c > phoenix_backup.sql
|
||||
```
|
||||
📖 Explanation:
|
||||
• docker exec -t phoenixDB → Runs the pg_dump command inside the phoenixDB container.
|
||||
• pg_dump -U postgres -d phoenix -c:
|
||||
• -U postgres → Connect as user postgres.
|
||||
• -d phoenix → Dump the phoenix database.
|
||||
• -c → Includes DROP statements (cleans tables before restoring).
|
||||
• > phoenix_backup.sql → Saves the dump to your host machine.
|
||||
|
||||
🔹 When to Use?
|
||||
• Use this when you want to completely overwrite an existing database on restore.
|
||||
• Ensures that old tables are dropped before new ones are created.
|
||||
|
||||
# Dump Database (Without DROP Statements)
|
||||
```sh
|
||||
docker exec -t phoenixDB pg_dump -U postgres -d phoenix > phoenix_backup.sql
|
||||
```
|
||||
|
||||
📖 Explanation:
|
||||
• Similar to the previous command, but without -c.
|
||||
• This does NOT include DROP TABLE statements, meaning:
|
||||
• It will fail if restoring to a database that already has tables with the same names.
|
||||
• Use this when restoring to a new empty database.
|
||||
|
||||
🔹 When to Use?
|
||||
• If you’re backing up for archival purposes.
|
||||
• If you don’t want to drop existing data on restore.
|
||||
|
||||
# 🛠️ How to Restore the Backup?
|
||||
## Restore to a Database (bkp1)
|
||||
```sh
|
||||
cat phoenix_backup.sql | docker exec -i phoenixDB psql -U postgres -d bkp1
|
||||
```
|
||||
📖 Explanation:
|
||||
• cat phoenix_backup.sql → Reads the dump file.
|
||||
• | → Pipes it into the psql command inside the container.
|
||||
• docker exec -i phoenixDB psql -U postgres -d bkp2
|
||||
• -i → Allows input redirection.
|
||||
• -U postgres → Connects as the postgres user.
|
||||
• -d bkp2 → Restores to the bkp2 database
|
||||
|
||||
# 🎯 Final Notes
|
||||
• Use the -c flag when restoring into an existing database and you want to drop old tables first.
|
||||
• Omit -c when restoring into a new, empty database.
|
||||
Reference in New Issue
Block a user