Thread: Executing script file

Executing script file

From
"Tumurbaatar S."
Date:
Hi!
I cannot imagine how to create db from a script file and execute
other DDL statements on this new db.
Currently I use 'psql -f file' to perform all needed DDL statements
except of create db. Because when I insert 'CREATE DATABASE'
at the beginning of the script, the server creates a db but following
commands like 'CREATE TABLE' and etc run on the current db, i.e.
not in context of newly created db. Any ideas?

P.S. Some RDBMS automatically switches to a newly created db
after 'CREATE DATABASE' and some other languages have command
like 'USE' to switch to a different db.


Re: Executing script file

From
Chris
Date:
> Currently I use 'psql -f file' to perform all needed DDL statements
> except of create db. Because when I insert 'CREATE DATABASE'
> at the beginning of the script, the server creates a db but following
> commands like 'CREATE TABLE' and etc run on the current db, i.e.
> not in context of newly created db. Any ideas?

Use \c, like this:

  \c your_new_database

Bye, Chris.



Re: Executing script file

From
Richard Huxton
Date:
On Tuesday 13 April 2004 08:40, Tumurbaatar S. wrote:
> Hi!
> I cannot imagine how to create db from a script file and execute
> other DDL statements on this new db.

> P.S. Some RDBMS automatically switches to a newly created db
> after 'CREATE DATABASE' and some other languages have command
> like 'USE' to switch to a different db.

You want to look into the "\c" command available in psql. That reconnects to a
different db / user.

Worth doing a pg_dump (text format) and looking at its output (or pg_restore
to a text-file).

--
  Richard Huxton
  Archonet Ltd