Обсуждение: Install scripts?

Поиск
Список
Период
Сортировка

Install scripts?

От
Charl Gerber
Дата:
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!



Re: Install scripts?

От
Tom Lane
Дата:
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

Re: Install scripts?

От
Peter Eisentraut
Дата:
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/