2013-03-06 12 views
22

Próbuję utworzyć tabelę w postgresie, ale kończy się to w niewłaściwej bazie danych.postgres: utwórz tabelę w bazie danych

Oto, co robię: w moim skrypcie sql początkowo tworzę użytkownika i bazę danych, a następnie tabelę. Kod wyjaśni więcej:

drop database if exists sinfonifry; 
drop role if exists sinfonifry; 

-- create the requested sinfonifry user 

create user sinfonifry createdb createuser password 'some_password'; 

-- create a sinfonifry database 
create database sinfonifry owner sinfonifry; 

DROP TABLE if exists sinf01_host; 

CREATE TABLE sinf01_host 
(
    host_id bigserial NOT NULL, -- The primary key 
    host_ip inet NOT NULL, -- The IP of the host 
    host_name character varying(255) NOT NULL, -- The name of the host 
    CONSTRAINT "PK_host" PRIMARY KEY (host_id) 
) 
WITH (
    OIDS=FALSE 
); 

ALTER TABLE sinf01_host OWNER TO sinfonifry; 

teraz, to jest część zautomatyzowanego skryptu i jest wykonywany z linii poleceń, takich jak:

sudo -u postgres psql < create_db.sql 

i mam już użytkownikowi postgres'owy utworzonego w systemie.

I tu pojawia się problem: tabela kończy się w bazie danych postgres, schemacie publicznym, a nie w bazie danych Sinfonifry, schemacie publicznym.

Jak mogę utworzyć tabelę w bazie danych, którą chcę?

Dzięki, i okrzyki, f.

+0

połączyć się z świeżo utworzonej bazy danych przed utworzeniem w niej żadnych przedmiotów. – wildplasser

Odpowiedz

26

Po wydaniu polecenia CREATE bazy connect:

create database sinfonifry owner sinfonifry; 
\connect sinfonifry 
+0

Doskonały, działa :) – fritzone

Powiązane problemy