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