Обсуждение: Install scripts?
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!
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
			
		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/