Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions packages/data-model/docs/schema.dbml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ enum audit_action {
enum migration_status {
"IN-PROGRESS"
COMPLETED
FAILED
}

enum submission_status {
Expand Down Expand Up @@ -35,17 +36,6 @@ table audit_submitted_data {
created_by varchar
}

table category_migration {
id serial [pk, not null, increment]
dictionary_category_id integer [not null]
from_dictionary_id integer [not null]
to_dictionary_id integer [not null]
submission_id integer [not null]
status migration_status [not null]
created_at timestamp
created_by varchar
}

table dictionaries {
id serial [pk, not null, increment]
dictionary jsonb [not null]
Expand All @@ -66,6 +56,20 @@ table dictionary_categories {
updated_by varchar
}

table dictionary_migration {
id serial [pk, not null, increment]
category_id integer [not null]
from_dictionary_id integer [not null]
to_dictionary_id integer [not null]
submission_id integer [not null]
status migration_status [not null]
retries integer [not null, default: 0]
created_at timestamp
created_by varchar
updated_at timestamp
updated_by varchar
}

table submissions {
id serial [pk, not null, increment]
data jsonb [not null]
Expand Down Expand Up @@ -108,15 +112,15 @@ ref: audit_submitted_data.original_schema_id - dictionaries.id

ref: audit_submitted_data.submission_id - submissions.id

ref: category_migration.dictionary_category_id - dictionary_categories.id
ref: dictionary_categories.active_dictionary_id - dictionaries.id

ref: category_migration.from_dictionary_id - dictionaries.id
ref: dictionary_migration.category_id - dictionary_categories.id

ref: category_migration.to_dictionary_id - dictionaries.id
ref: dictionary_migration.from_dictionary_id - dictionaries.id

ref: category_migration.submission_id - submissions.id
ref: dictionary_migration.to_dictionary_id - dictionaries.id

ref: dictionary_categories.active_dictionary_id - dictionaries.id
ref: dictionary_migration.submission_id - submissions.id

ref: submissions.dictionary_id - dictionaries.id

Expand Down
45 changes: 45 additions & 0 deletions packages/data-model/migrations/0010_dictionary_migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
DO $$ BEGIN
CREATE TYPE "migration_status" AS ENUM('IN-PROGRESS', 'COMPLETED', 'FAILED');
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
ALTER TYPE "audit_action" ADD VALUE 'MIGRATION';--> statement-breakpoint
CREATE TABLE IF NOT EXISTS "dictionary_migration" (
"id" serial PRIMARY KEY NOT NULL,
"category_id" integer NOT NULL,
"from_dictionary_id" integer NOT NULL,
"to_dictionary_id" integer NOT NULL,
"submission_id" integer NOT NULL,
"status" "migration_status" NOT NULL,
"retries" integer DEFAULT 0 NOT NULL,
"created_at" timestamp,
"created_by" varchar,
"updated_at" timestamp,
"updated_by" varchar
);
--> statement-breakpoint
ALTER TABLE "audit_submitted_data" ADD COLUMN "errors" jsonb;--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "dictionary_migration" ADD CONSTRAINT "dictionary_migration_category_id_dictionary_categories_id_fk" FOREIGN KEY ("category_id") REFERENCES "dictionary_categories"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "dictionary_migration" ADD CONSTRAINT "dictionary_migration_from_dictionary_id_dictionaries_id_fk" FOREIGN KEY ("from_dictionary_id") REFERENCES "dictionaries"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "dictionary_migration" ADD CONSTRAINT "dictionary_migration_to_dictionary_id_dictionaries_id_fk" FOREIGN KEY ("to_dictionary_id") REFERENCES "dictionaries"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "dictionary_migration" ADD CONSTRAINT "dictionary_migration_submission_id_submissions_id_fk" FOREIGN KEY ("submission_id") REFERENCES "submissions"("id") ON DELETE no action ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
Loading