40

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 データベースの public スキーマではなく、postgres データベースの public スキーマになります。

必要なデータベースにテーブルを作成するにはどうすればよいですか?

ありがとう、乾杯、f.

4

1 に答える 1

61

create databaseコマンドの後に、接続を発行します。

create database sinfonifry owner sinfonifry;
\connect sinfonifry
于 2013-03-06T15:25:36.967 に答える