Install scripts?

Started by Charl Gerberabout 21 years ago3 messagesgeneral
Jump to latest
#1Charl Gerber
cpger@xs4all.nl

Rookie question... I'm converting a MySQL database to Postgre. In MySQL,
all the tables are defined in seprate 'table_name.sql' file.

There is one 'install.sql' file which does something like:

DROP DATABASE db_name IF EXISTS (<--- is there something similar in
Postgre? Like the CREATE OR REPLACE FUNCTION)

CREATE DATABASE db_name;

USE db_name;

SOURCE users.sql;
SOURCE teams.sql;
SOURCE players.sql;

etc.

Using the mysql command like tool, you just run "source install.sql"
and the whole database is loaded.

How do you do this with Postgre? I tried using the "insert filename"
command, but one file cannot seem to load another (ie, a SELECT filename
gives me an error) and to start with, I cannot find something similar to
"USE DATABASE" ....

Thanks!

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Charl Gerber (#1)
Re: Install scripts?

Charl Gerber <cpger@xs4all.nl> writes:

There is one 'install.sql' file which does something like:

DROP DATABASE db_name IF EXISTS (<--- is there something similar in
Postgre? Like the CREATE OR REPLACE FUNCTION)

CREATE DATABASE db_name;

There's no IF EXISTS. Usually people just do a DROP and ignore the
error if any.

How do you do this with Postgre? I tried using the "insert filename"
command, but one file cannot seem to load another (ie, a SELECT filename
gives me an error) and to start with, I cannot find something similar to
"USE DATABASE" ....

You probably want to be looking at psql's \i and \c commands,
respectively. Does "insert foo" really mean a file inclusion
command in MySQL? Bizarre ...

regards, tom lane

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Charl Gerber (#1)
Re: Install scripts?

Charl Gerber wrote:

DROP DATABASE db_name IF EXISTS (<--- is there something similar in
Postgre? Like the CREATE OR REPLACE FUNCTION)

No, you just go ahead and ignore the error.

CREATE DATABASE db_name;

USE db_name;

\connect db_name

SOURCE users.sql;

\i users.sql

--
Peter Eisentraut
http://developer.postgresql.org/~petere/