forked from JannikArndt/PostgreSQLSampleDatabase
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrestore.sh
More file actions
executable file
·54 lines (45 loc) · 1.53 KB
/
Copy pathrestore.sh
File metadata and controls
executable file
·54 lines (45 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env bash
# Restore script voor PostgreSQL 18 compatibele webshop database
set -e
DATABASENAME=${1:-'mywebshop'}
CONTAINER=${2:-'postgres'}
echo "=== Webshop Database Restore ==="
echo "Database: $DATABASENAME"
echo "Container: $CONTAINER"
echo
# Maak database aan (negeer fout als deze al bestaat)
echo "Stap 1: Database aanmaken..."
docker exec "$CONTAINER" createdb -U postgres "$DATABASENAME" 2>/dev/null || echo "Database bestaat al, doorgaan..."
# Kopieer data naar container
echo "Stap 2: Data kopiëren naar container..."
docker cp data "$CONTAINER":/tmp/
# Voer SQL-bestanden uit
echo "Stap 3: SQL-bestanden uitvoeren..."
# Volgorde is belangrijk vanwege foreign key dependencies:
# 1. create.sql - schema, types, sequences, colors, sizes
# 2. labels.sql - geen dependencies
# 3. products.sql - verwijst naar labels
# 4. articles.sql - verwijst naar products
# 5. customer.sql - geen dependencies
# 6. address.sql - verwijst naar customer
# 7. order.sql - verwijst naar customer, address
# 8. order_positions.sql - verwijst naar order, articles
# 9. stock.sql - verwijst naar articles
SQL_FILES=(
"create.sql"
"labels.sql"
"products.sql"
"articles.sql"
"customer.sql"
"address.sql"
"order.sql"
"order_positions.sql"
"stock.sql"
)
for sql_file in "${SQL_FILES[@]}"; do
echo " → $sql_file"
docker exec -i "$CONTAINER" psql -U postgres -d "$DATABASENAME" -f "/tmp/data/$sql_file"
done
echo
echo "=== Restore voltooid ==="
echo "Database '$DATABASENAME' is klaar voor gebruik."