#!/bin/bash # Create script for exporting a new template # DDB 2018-01-28 # under GPL license # export TEMPLATE=${DOMAIN}mod2 psql -X $TEMPLATE -c "delete from user_local_pref" pg_dump -O -U dany -s $TEMPLATE|grep -v "COMMENT ON SCHEMA public IS 'Standard public schema';" |sed "/^--/d" > schema.sql sed -i -e "/COMMENT ON EXTENSION/d" schema.sql sed -i -e "/CREATE EXTENSION/d" schema.sql awk '/SEQUENCE/,/;/ { print $0;}' < schema.sql > sequence.sql awk '/CREATE DOMAIN/,/;/ { print $0;}' < schema.sql > table.sql awk '/CREATE TABLE/,/;/ { print $0;}' < schema.sql >> table.sql awk '/CREATE VIEW/,/;/ { print $0;}' < schema.sql > view.sql awk '/INDEX/,/;/ { print $0;}' < schema.sql > index.sql ( echo " SET client_encoding = 'utf8';" echo " SET check_function_bodies = false;" echo " SET client_min_messages = warning;" echo "SET search_path = public, pg_catalog;" )> constraint.sql awk '/ALTER TABLE/,/;/ { print $0;}' < schema.sql >> constraint.sql awk '/CREATE TRIGGER/,/;/ { print $0;}' < schema.sql >> constraint.sql awk '/COMMENT ON CONSTRAINT/,/;/ { print $0;}' < schema.sql >> constraint.sql awk '/COMMENT ON TRIGGER/,/;/ { print $0;}' < schema.sql >> constraint.sql # function in XML ## awk 'BEGIN{print "";} /CREATE FUNCTION/,/\$\$;/ { if (/CREATE FUNCTION/) {print "";} if (/\$\$;/) {print "";} print $0;} END { print "";}' < schema.sql awk '/CREATE FUNCTION/,/\$\$;/ { print $0;}' < schema.sql > function.sql awk '/COMMENT/,/;/ {print $0;}' < schema.sql > comment.sql sed -i -e "/REVOKE /d" -e "/GRANT /d" -e "/ALTER TABLE.*/d" -e "/ADD CONSTRAINT/d" -e "/CREATE PROCEDURAL/d" -e "/CREATE TRIGGER/d" -e "/COMMENT ON CONSTRAINT/d" -e "/COMMENT ON TRIGGER/d" schema.sql grep setval schema.sql >> sequence.sql echo "set search_path = public,comptaproc,pg_catalog ;" > data.sql pg_dump -O -U dany --data-only --column-inserts -O ${TEMPLATE}|sed "/^--/d" | sed -e "/SET search_path/d" >> data.sql