postgresを利用する際に初期にtemplateを指定できます
こちらがtemplate1と呼ばれるDBが標準で適用されるのですがこちら通常の
フローではdropdb(DROP DATABASE template1)が利用できません
こちらを初期化し再構築する手順をまとめます。
$ psql -U postgres postgres=# SELECT * FROM pg_database where datname = 'template1'; postgres=# UPDATE pg_database SET datistemplate = 'f' where datname = 'template1'; postgres=# SELECT * FROM pg_database where datname = 'template1'; postgres=# \q $ dropdb template1 $ createdb -T template0 template1 $ psql -U postgres postgres=# SELECT * FROM pg_database where datname = 'template1'; postgres=# UPDATE pg_database SET datistemplate = 't' where datname = 'template1'; postgres=# SELECT * FROM pg_database where datname = 'template1';
pg_databaseの中身を書き換えることで実現しています。
この方法が一番らくだと思いますのでメモです。