83 lines
2.7 KiB
SQL
83 lines
2.7 KiB
SQL
-- CreateEnum
|
|||
|
|
CREATE TYPE "ReplicationRuleType" AS ENUM ('master', 'transaction');
|
||
|
|
|
||
|
|
-- AlterEnum
|
||
|
|
ALTER TYPE "EventStatus" ADD VALUE 'filtered';
|
||
|
|
|
||
|
|
-- AlterTable
|
||
|
|
ALTER TABLE "replication_attempts" ADD COLUMN "result_key" TEXT;
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "subsidiaries" (
|
||
|
|
"id" SERIAL NOT NULL,
|
||
|
|
"code" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"base_url" TEXT NOT NULL,
|
||
|
|
"company_db" TEXT NOT NULL,
|
||
|
|
"username" TEXT NOT NULL,
|
||
|
|
"password" TEXT NOT NULL,
|
||
|
|
"routing_value" TEXT,
|
||
|
|
"active" BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "subsidiaries_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "replication_rules" (
|
||
|
|
"id" SERIAL NOT NULL,
|
||
|
|
"business_object" TEXT NOT NULL,
|
||
|
|
"type" "ReplicationRuleType" NOT NULL,
|
||
|
|
"key_field" TEXT,
|
||
|
|
"routing_field" TEXT,
|
||
|
|
"idempotency_field" TEXT,
|
||
|
|
"active" BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "replication_rules_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "mapped_fields" (
|
||
|
|
"id" SERIAL NOT NULL,
|
||
|
|
"business_object" TEXT NOT NULL,
|
||
|
|
"field_name" TEXT NOT NULL,
|
||
|
|
"active" BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
|
||
|
|
CONSTRAINT "mapped_fields_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "reference_field_mappings" (
|
||
|
|
"id" SERIAL NOT NULL,
|
||
|
|
"business_object" TEXT NOT NULL,
|
||
|
|
"field_name" TEXT NOT NULL,
|
||
|
|
"subsidiary_code" TEXT NOT NULL,
|
||
|
|
"hq_value" TEXT NOT NULL,
|
||
|
|
"subsidiary_value" TEXT NOT NULL,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "reference_field_mappings_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "subsidiaries_code_key" ON "subsidiaries"("code");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "subsidiaries_routing_value_key" ON "subsidiaries"("routing_value");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "replication_rules_business_object_key" ON "replication_rules"("business_object");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "mapped_fields_business_object_field_name_key" ON "mapped_fields"("business_object", "field_name");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "reference_field_mappings_business_object_field_name_subsidi_key" ON "reference_field_mappings"("business_object", "field_name", "subsidiary_code", "hq_value");
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "reference_field_mappings" ADD CONSTRAINT "reference_field_mappings_subsidiary_code_fkey" FOREIGN KEY ("subsidiary_code") REFERENCES "subsidiaries"("code") ON DELETE CASCADE ON UPDATE CASCADE;
|