Repository navigation
Expand file tree
/
Copy pathmigrate_to_pg18.sh
More file actions
executable file
·55 lines (43 loc) · 2.01 KB
/
Copy pathmigrate_to_pg18.sh
File metadata and controls
executable file
·55 lines (43 loc) · 2.01 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
#!/bin/bash
# Migratiesscript: PostgreSQL 10.5 → PostgreSQL 18
#
# Dit script past alle SQL dump-bestanden aan voor compatibiliteit met PostgreSQL 18.
# Wijzigingen:
# 1. Verwijderen van 'SET default_with_oids = false;' (niet meer ondersteund sinds PG12)
# 2. 'CREATE SEQUENCE' → 'CREATE SEQUENCE IF NOT EXISTS'
# 3. 'CREATE TABLE' → 'CREATE TABLE IF NOT EXISTS'
# 4. 'CREATE SCHEMA' → 'CREATE SCHEMA IF NOT EXISTS'
# 5. 'CREATE TYPE ... AS ENUM' → DO $$ block met exception handling
# (CREATE TYPE IF NOT EXISTS werkt NIET voor ENUM types!)
set -e
DATA_DIR="$(dirname "$0")/data"
echo "=== PostgreSQL 10.5 → 18 Migratie ==="
echo "Data directory: $DATA_DIR"
echo
for file in "$DATA_DIR"/*.sql; do
if [ -f "$file" ]; then
filename=$(basename "$file")
echo "Verwerking: $filename"
# 1. Verwijder 'SET default_with_oids = false;' (deprecated sinds PG12)
sed -i '/^SET default_with_oids/d' "$file"
# 2. CREATE SEQUENCE → CREATE SEQUENCE IF NOT EXISTS
sed -i 's/^CREATE SEQUENCE /CREATE SEQUENCE IF NOT EXISTS /g' "$file"
# 3. CREATE TABLE → CREATE TABLE IF NOT EXISTS
sed -i 's/^CREATE TABLE /CREATE TABLE IF NOT EXISTS /g' "$file"
# 4. CREATE SCHEMA → CREATE SCHEMA IF NOT EXISTS
sed -i 's/^CREATE SCHEMA /CREATE SCHEMA IF NOT EXISTS /g' "$file"
# 5. Voorkom dubbele IF NOT EXISTS
sed -i 's/IF NOT EXISTS IF NOT EXISTS/IF NOT EXISTS/g' "$file"
# LET OP: CREATE TYPE IF NOT EXISTS werkt NIET voor ENUM types!
# Deze moeten handmatig worden aangepast met DO $$ ... EXCEPTION blocks
fi
done
echo
echo "=== Migratie voltooid ==="
echo "Alle bestanden zijn aangepast voor PostgreSQL 18 compatibiliteit."
echo
echo "WAARSCHUWING: CREATE TYPE voor ENUM types moet handmatig worden gecontroleerd!"
echo " Gebruik DO \$\$ BEGIN ... EXCEPTION WHEN duplicate_object THEN NULL; END \$\$;"
echo
echo "Je kunt nu de data importeren met:"
echo " ./restore.sh"