98 lines
3.3 KiB
PL/PgSQL
98 lines
3.3 KiB
PL/PgSQL
-- Convert schema 'share/ddl/_source/deploy/25/001-auto.yml' to 'share/ddl/_source/deploy/26/001-auto.yml':;
|
|
|
|
;
|
|
BEGIN;
|
|
|
|
;
|
|
CREATE TABLE "external_references" (
|
|
"id" serial NOT NULL,
|
|
"name" character varying(255) NOT NULL,
|
|
PRIMARY KEY ("id"),
|
|
CONSTRAINT "external_references_name" UNIQUE ("name")
|
|
);
|
|
|
|
;
|
|
CREATE TABLE "organisation_social_types" (
|
|
"id" serial NOT NULL,
|
|
"key" character varying(255) NOT NULL,
|
|
"name" character varying(255) NOT NULL,
|
|
PRIMARY KEY ("id"),
|
|
CONSTRAINT "organisation_social_types_key" UNIQUE ("key")
|
|
);
|
|
|
|
;
|
|
CREATE TABLE "organisation_types" (
|
|
"id" serial NOT NULL,
|
|
"key" character varying(255) NOT NULL,
|
|
"name" character varying(255) NOT NULL,
|
|
PRIMARY KEY ("id"),
|
|
CONSTRAINT "organisation_types_key" UNIQUE ("key")
|
|
);
|
|
|
|
;
|
|
CREATE TABLE "organisations_external" (
|
|
"id" serial NOT NULL,
|
|
"org_id" integer NOT NULL,
|
|
"external_reference_id" integer NOT NULL,
|
|
"external_id" character varying(255) NOT NULL,
|
|
PRIMARY KEY ("id"),
|
|
CONSTRAINT "organisations_external_external_reference_id_external_id" UNIQUE ("external_reference_id", "external_id")
|
|
);
|
|
CREATE INDEX "organisations_external_idx_external_reference_id" on "organisations_external" ("external_reference_id");
|
|
CREATE INDEX "organisations_external_idx_org_id" on "organisations_external" ("org_id");
|
|
|
|
;
|
|
CREATE TABLE "transactions_external" (
|
|
"id" serial NOT NULL,
|
|
"transaction_id" integer NOT NULL,
|
|
"external_reference_id" integer NOT NULL,
|
|
"external_id" character varying(255) NOT NULL,
|
|
PRIMARY KEY ("id"),
|
|
CONSTRAINT "transactions_external_external_reference_id_external_id" UNIQUE ("external_reference_id", "external_id")
|
|
);
|
|
CREATE INDEX "transactions_external_idx_external_reference_id" on "transactions_external" ("external_reference_id");
|
|
CREATE INDEX "transactions_external_idx_transaction_id" on "transactions_external" ("transaction_id");
|
|
|
|
;
|
|
ALTER TABLE "organisations_external" ADD CONSTRAINT "organisations_external_fk_external_reference_id" FOREIGN KEY ("external_reference_id")
|
|
REFERENCES "external_references" ("id") ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE;
|
|
|
|
;
|
|
ALTER TABLE "organisations_external" ADD CONSTRAINT "organisations_external_fk_org_id" FOREIGN KEY ("org_id")
|
|
REFERENCES "organisations" ("id") DEFERRABLE;
|
|
|
|
;
|
|
ALTER TABLE "transactions_external" ADD CONSTRAINT "transactions_external_fk_external_reference_id" FOREIGN KEY ("external_reference_id")
|
|
REFERENCES "external_references" ("id") ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE;
|
|
|
|
;
|
|
ALTER TABLE "transactions_external" ADD CONSTRAINT "transactions_external_fk_transaction_id" FOREIGN KEY ("transaction_id")
|
|
REFERENCES "transactions" ("id") ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE;
|
|
|
|
;
|
|
ALTER TABLE organisations ADD COLUMN type_id integer;
|
|
|
|
;
|
|
ALTER TABLE organisations ADD COLUMN social_type_id integer;
|
|
|
|
;
|
|
ALTER TABLE organisations ADD COLUMN is_anchor boolean DEFAULT FALSE NOT NULL;
|
|
|
|
;
|
|
CREATE INDEX organisations_idx_type_id on organisations (type_id);
|
|
|
|
;
|
|
CREATE INDEX organisations_idx_social_type_id on organisations (social_type_id);
|
|
|
|
;
|
|
ALTER TABLE organisations ADD CONSTRAINT organisations_fk_type_id FOREIGN KEY (type_id)
|
|
REFERENCES organisation_types (id) ON DELETE CASCADE ON UPDATE CASCADE DEFERRABLE;
|
|
|
|
;
|
|
ALTER TABLE organisations ADD CONSTRAINT organisations_fk_social_type_id FOREIGN KEY (social_type_id)
|
|
REFERENCES organisation_types (id) DEFERRABLE;
|
|
|
|
;
|
|
|
|
COMMIT;
|
|
|