web-dev-qa-db-ja.com

postgres:コマンドラインからデータベースにテーブルを作成します

Postgresでテーブルを作成しようとしていますが、間違ったデータベースになってしまいます。

これが私がすることです:私のsqlスクリプトで最初にユーザーとデータベースを作成し、次にテーブルを作成します。コードはさらに説明します:

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;

これは一部自動化されたスクリプトであり、次のようにコマンドラインから実行されます。

Sudo -u postgres psql < create_db.sql

そして、私はすでにシステム上に作成されたpostgresユーザーを持っています。

ここで問題が発生します。テーブルは、sinfonifryデータベースのパブリックスキーマではなく、postgresデータベースのパブリックスキーマに格納されます。

どうすればデータベースにテーブルを作成できますか?

ありがとう、そして乾杯f。

32
Ferenc Deak

データベース作成コマンドが接続を発行した後:

create database sinfonifry owner sinfonifry;
\connect sinfonifry
39
Clodoaldo Neto