Подтвердить что ты не робот

Postgres: создать таблицу в базе данных

Я пытаюсь создать таблицу в postgres, но она попадает в неправильную базу данных.

Вот что я делаю: в моем sql script сначала создаю пользователя и базу данных, а затем таблицу. Код объяснит больше:

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;

теперь это часть автоматизированного script и выполняется из командной строки, например:

sudo -u postgres psql < create_db.sql

и у меня уже есть пользователь postgres, созданный в системе.

И здесь возникает проблема: таблица заканчивается в базе данных postgres, общедоступной схеме, а не в базе данных sinfonifry, общедоступной схеме.

Как создать таблицу в базе данных, которую я хочу?

Спасибо и приветствую, f.

4b9b3361

Ответ 1

После создания команды create database выполните подключение:

create database sinfonifry owner sinfonifry;
\connect sinfonifry