PostgreSQLにデフォルトで在るDB、posgres, template0, template1
すべて、initdbコマンドを実行したタイミングで生成される
生成される順番
- template1
- template0, postgres
initdbを実行すると、まずtemplate1が作成されて、それをtemplate0とpostgresにコピーします。
役割
postgres
デフォルトのDB。このDBにアクセスしてPostgreSQLのコマンドを打ったりするらしい。
template1
create database
や、
createdb
( -T オプションでテンプレートを指定しない場合)
コマンド行った場合に、この template1 DBを基に(テンプレートに)して新規DBが作成される。
このtemplate1は中身が編集できる。(template0は編集できない)
template0
template1 DBと違い、中身が編集できないので、純粋にまっさらなDBを新規作成したい場合は以下のコマンドのようにしてテンプレートとして指定する。
create database newdatabase template=template0;
または、
createdb -T template0 newdatabase;
その他参考にしたサイト
PostgreSQL/template0とtemplate1の違いについて
コメント