Thread: create db from a template
Is there a better way to create a database from the schema of another database, to have a copy of a database without the data? 1.) I get the schema from a database pg_dump -s -U postgres -O databasename > /tmp/template_name 2.) I create a new database. createdb -U postgres newdb 3.) I restore the schema to the newdb. psql -U postgres newdb < /tmp/template_name 4.) I create a database, using the newdb as a TEMPLATE CREATE DATABASE databasename2 TEMPLATE newdb; Marc
Marc Fromm wrote: > Is there a better way to create a database from the schema of another > database, to have a copy of a database without the data? > > 1.) I get the schema from a database > pg_dump -s -U postgres -O databasename > /tmp/template_name > > 2.) I create a new database. > createdb -U postgres newdb > > 3.) I restore the schema to the newdb. > psql -U postgres newdb < /tmp/template_name > > 4.) I create a database, using the newdb as a TEMPLATE > CREATE DATABASE databasename2 TEMPLATE newdb; > > > Marc > > You only need those 4 steps once to start with then each new one will just use step 4. So you can either setup the database as you have done and use it as the template for all the similar db's you want which means each new one will only need step 4. The other way is do 4 without using the TEMPLATE and then adjust 3 to import the schema dump into the db just created (databasename2 in this case) -- Shane Ambler pgSQL (at) Sheeky (dot) Biz Get Sheeky @ http://Sheeky.Biz