私は間違いなくpostgresが初めてです。バージョン9.2を使用しています。いくつかのロール、データベース、スキーマ、および基本テーブルを作成するスクリプトを作成しようとしています。pgAdminIII で sql エディターを使用してみましたが、次のようなエラーが発生し続けます。
ERROR: CREATE DATABASE cannot be executed from a function or multi-command string
他の投稿から、これはpostgresでこれを行う方法ではないことを理解していますが、私が理解していないのは、誰かが自分のddlを単一のファイルに整理して、データベース、スキーマ、ロール、テーブルなどのコレクションを構築する方法です. .
現在作成しようとしている基本的なデータベース レイアウトのサンプルを次に示します。
CREATE ROLE "edus-db-admins-dev"
NOSUPERUSER INHERIT CREATEROLE;
CREATE ROLE "edus-db-admin-dev" LOGIN
PASSWORD 'blahblahblah'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT "edus-db-admins-dev" TO "edus-db-admin-dev";
CREATE ROLE "edus-esb-loggers"
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE "edus-esb-logger" LOGIN
PASSWORD 'blahblahblah'
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE DATABASE edus
WITH OWNER = "edus-db-admin-dev"
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'English_United States.1252'
LC_CTYPE = 'English_United States.1252'
CONNECTION LIMIT = -1;
CREATE SCHEMA eduspubservice
AUTHORIZATION "edus-db-admin-dev";
CREATE TABLE eduspubservice.logs
(
date date NOT NULL,
level character varying(10),
category character varying(100),
logger character varying(100),
method character varying(100),
message character varying(10000)
)
WITH (
OIDS=FALSE
);
ALTER TABLE eduspubservice.logs
OWNER TO "edus-esb-logger";