summaryrefslogtreecommitdiff
path: root/util/gendevdb.sh
blob: 466d3f65f8ec0c26d95bb81fe2eba47e9b5a27b6 (plain)
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
#!/bin/sh

# This script generates util/sql/devdb.sql from the current DB. It assumes that
# the DB is accessible through a passwordless 'psql -U vndb'.

# WARNING: This script will throw away sessions and IP addresses from the DB!

psql -U vndb -c 'TRUNCATE sessions'
psql -U vndb -c "UPDATE users SET ip = '0.0.0.0'"
psql -U vndb -c "UPDATE changes SET ip = '0.0.0.0'"

cat <<'EOF' >util/sql/devdb.sql
-- See the README for instructions.
-- This file was automatically generated by util/gendevdb.sh.

SET CONSTRAINTS ALL DEFERRED;
-- Hack to disable triggers
SET session_replication_role = replica;
EOF

psql -U vndb -qAtc \
    "SELECT 'TRUNCATE TABLE ' || string_agg(oid::regclass::text, ', ') || ' CASCADE;'
      FROM pg_class WHERE relkind = 'r' AND relnamespace = 'public'::regnamespace"\
    >>util/sql/devdb.sql

pg_dump -U vndb --data-only | grep -Ev '^(--( .*|$))?$' >>util/sql/devdb.sql