more optional validations
This commit is contained in:
@@ -1,13 +1,42 @@
|
||||
-- apply changes
|
||||
create table data_model (
|
||||
create table audit_log (
|
||||
sys_pk bigint generated by default as identity not null,
|
||||
deleted_on timestamp,
|
||||
current_approval_level integer not null,
|
||||
required_approval_levels integer not null,
|
||||
deleted boolean default false not null,
|
||||
version integer not null,
|
||||
created_at timestamp not null,
|
||||
modified_at timestamp not null,
|
||||
tenant_id varchar(255) not null,
|
||||
deleted_by varchar(255),
|
||||
approval_status varchar(8) not null,
|
||||
tags varchar[] not null,
|
||||
comments jsonb not null,
|
||||
audit_type varchar(7) not null,
|
||||
entity varchar(255) not null,
|
||||
unique_identifier varchar(255) not null,
|
||||
data jsonb not null,
|
||||
changes jsonb not null,
|
||||
created_by varchar(255) not null,
|
||||
modified_by varchar(255) not null,
|
||||
constraint ck_audit_log_approval_status check ( approval_status in ('PENDING','APPROVED','REJECTED')),
|
||||
constraint ck_audit_log_audit_type check ( audit_type in ('CREATE','UPDATE','DELETE','VIEW','APPROVE','REJECT')),
|
||||
constraint pk_audit_log primary key (sys_pk)
|
||||
);
|
||||
|
||||
create table data_model (
|
||||
sys_pk bigint generated by default as identity not null,
|
||||
deleted_on timestamp,
|
||||
current_approval_level integer not null,
|
||||
required_approval_levels integer not null,
|
||||
deleted boolean default false not null,
|
||||
version integer not null,
|
||||
created_at timestamp not null,
|
||||
modified_at timestamp not null,
|
||||
tenant_id varchar(255) not null,
|
||||
deleted_by varchar(255),
|
||||
approval_status varchar(8) not null,
|
||||
tags varchar[] not null,
|
||||
comments jsonb not null,
|
||||
unique_identifier varchar(255) not null,
|
||||
@@ -15,9 +44,95 @@ create table data_model (
|
||||
data jsonb not null,
|
||||
created_by varchar(255) not null,
|
||||
modified_by varchar(255) not null,
|
||||
constraint ck_data_model_approval_status check ( approval_status in ('PENDING','APPROVED','REJECTED')),
|
||||
constraint entity_unique_id unique (entity_name,unique_identifier,tenant_id),
|
||||
constraint pk_data_model primary key (sys_pk)
|
||||
);
|
||||
|
||||
create table entity_model (
|
||||
sys_pk bigint generated by default as identity not null,
|
||||
deleted_on timestamp,
|
||||
current_approval_level integer not null,
|
||||
required_approval_levels integer not null,
|
||||
approval_levels integer not null,
|
||||
deleted boolean default false not null,
|
||||
version integer not null,
|
||||
created_at timestamp not null,
|
||||
modified_at timestamp not null,
|
||||
tenant_id varchar(255) not null,
|
||||
deleted_by varchar(255),
|
||||
approval_status varchar(8) not null,
|
||||
tags varchar[] not null,
|
||||
comments jsonb not null,
|
||||
name varchar(255) not null,
|
||||
pre_save_script varchar(255) not null,
|
||||
post_save_script varchar(255) not null,
|
||||
actions varchar[] not null,
|
||||
allowed_fields varchar[] not null,
|
||||
allowed_field_types jsonb not null,
|
||||
audit_log_fields varchar[] not null,
|
||||
preferences jsonb not null,
|
||||
created_by varchar(255) not null,
|
||||
modified_by varchar(255) not null,
|
||||
constraint ck_entity_model_approval_status check ( approval_status in ('PENDING','APPROVED','REJECTED')),
|
||||
constraint uq_entity_model_name unique (name),
|
||||
constraint pk_entity_model primary key (sys_pk)
|
||||
);
|
||||
|
||||
create table job_model (
|
||||
sys_pk bigint generated by default as identity not null,
|
||||
deleted_on timestamp,
|
||||
current_approval_level integer not null,
|
||||
required_approval_levels integer not null,
|
||||
deleted boolean default false not null,
|
||||
version integer not null,
|
||||
created_at timestamp not null,
|
||||
modified_at timestamp not null,
|
||||
tenant_id varchar(255) not null,
|
||||
deleted_by varchar(255),
|
||||
approval_status varchar(8) not null,
|
||||
tags varchar[] not null,
|
||||
comments jsonb not null,
|
||||
job_name varchar(255) not null,
|
||||
job_type varchar(6) not null,
|
||||
job_path varchar(255) not null,
|
||||
tenants varchar[] not null,
|
||||
job_frequency_type varchar(8) not null,
|
||||
frequency varchar(255) not null,
|
||||
created_by varchar(255) not null,
|
||||
modified_by varchar(255) not null,
|
||||
constraint ck_job_model_approval_status check ( approval_status in ('PENDING','APPROVED','REJECTED')),
|
||||
constraint ck_job_model_job_type check ( job_type in ('SCRIPT','DB')),
|
||||
constraint ck_job_model_job_frequency_type check ( job_frequency_type in ('SPECIFIC','EVERY','CRON')),
|
||||
constraint uq_job_model_job_name unique (job_name),
|
||||
constraint pk_job_model primary key (sys_pk)
|
||||
);
|
||||
|
||||
create table tenant_model (
|
||||
sys_pk bigint generated by default as identity not null,
|
||||
deleted_on timestamp,
|
||||
current_approval_level integer not null,
|
||||
required_approval_levels integer not null,
|
||||
deleted boolean default false not null,
|
||||
version integer not null,
|
||||
created_at timestamp not null,
|
||||
modified_at timestamp not null,
|
||||
tenant_id varchar(255) not null,
|
||||
deleted_by varchar(255),
|
||||
approval_status varchar(8) not null,
|
||||
tags varchar[] not null,
|
||||
comments jsonb not null,
|
||||
name varchar(255) not null,
|
||||
domain varchar(255) not null,
|
||||
preferences jsonb not null,
|
||||
created_by varchar(255) not null,
|
||||
modified_by varchar(255) not null,
|
||||
constraint ck_tenant_model_approval_status check ( approval_status in ('PENDING','APPROVED','REJECTED')),
|
||||
constraint pk_tenant_model primary key (sys_pk)
|
||||
);
|
||||
|
||||
-- foreign keys and indices
|
||||
create index if not exists ix_audit_log_audit_type_entity_unique_identifier_tenant_i_1 on audit_log (audit_type,entity,unique_identifier,tenant_id,created_by);
|
||||
create index audit_log_values_idx on audit_log using GIN (data) ;
|
||||
create index audit_log_changes_idx on audit_log using GIN (changes) ;
|
||||
create index data_jsonb_idx on data_model using GIN (data) ;
|
||||
|
||||
@@ -1,11 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<migration xmlns="http://ebean-orm.github.io/xml/ns/dbmigration">
|
||||
<changeSet type="apply">
|
||||
<createTable name="audit_log" pkName="pk_audit_log">
|
||||
<column name="sys_pk" type="bigint" primaryKey="true"/>
|
||||
<column name="tenant_id" type="varchar" notnull="true"/>
|
||||
<column name="deleted_on" type="localdatetime"/>
|
||||
<column name="deleted_by" type="varchar"/>
|
||||
<column name="current_approval_level" type="integer" notnull="true"/>
|
||||
<column name="required_approval_levels" type="integer" notnull="true"/>
|
||||
<column name="approval_status" type="varchar(8)" notnull="true" checkConstraint="check ( approval_status in ('PENDING','APPROVED','REJECTED'))" checkConstraintName="ck_audit_log_approval_status"/>
|
||||
<column name="tags" type="varchar[]" notnull="true"/>
|
||||
<column name="comments" type="jsonb" notnull="true"/>
|
||||
<column name="audit_type" type="varchar(7)" notnull="true" checkConstraint="check ( audit_type in ('CREATE','UPDATE','DELETE','VIEW','APPROVE','REJECT'))" checkConstraintName="ck_audit_log_audit_type"/>
|
||||
<column name="entity" type="varchar" notnull="true"/>
|
||||
<column name="unique_identifier" type="varchar" notnull="true"/>
|
||||
<column name="data" type="jsonb" notnull="true"/>
|
||||
<column name="changes" type="jsonb" notnull="true"/>
|
||||
<column name="deleted" type="boolean" defaultValue="false" notnull="true"/>
|
||||
<column name="version" type="integer" notnull="true"/>
|
||||
<column name="created_at" type="localdatetime" notnull="true"/>
|
||||
<column name="modified_at" type="localdatetime" notnull="true"/>
|
||||
<column name="created_by" type="varchar" notnull="true"/>
|
||||
<column name="modified_by" type="varchar" notnull="true"/>
|
||||
</createTable>
|
||||
<createTable name="data_model" pkName="pk_data_model">
|
||||
<column name="sys_pk" type="bigint" primaryKey="true"/>
|
||||
<column name="tenant_id" type="varchar" notnull="true"/>
|
||||
<column name="deleted_on" type="localdatetime"/>
|
||||
<column name="deleted_by" type="varchar"/>
|
||||
<column name="current_approval_level" type="integer" notnull="true"/>
|
||||
<column name="required_approval_levels" type="integer" notnull="true"/>
|
||||
<column name="approval_status" type="varchar(8)" notnull="true" checkConstraint="check ( approval_status in ('PENDING','APPROVED','REJECTED'))" checkConstraintName="ck_data_model_approval_status"/>
|
||||
<column name="tags" type="varchar[]" notnull="true"/>
|
||||
<column name="comments" type="jsonb" notnull="true"/>
|
||||
<column name="unique_identifier" type="varchar" notnull="true"/>
|
||||
@@ -19,6 +44,80 @@
|
||||
<column name="modified_by" type="varchar" notnull="true"/>
|
||||
<uniqueConstraint name="entity_unique_id" columnNames="entity_name,unique_identifier,tenant_id" oneToOne="false" nullableColumns=""/>
|
||||
</createTable>
|
||||
<createTable name="entity_model" pkName="pk_entity_model">
|
||||
<column name="sys_pk" type="bigint" primaryKey="true"/>
|
||||
<column name="tenant_id" type="varchar" notnull="true"/>
|
||||
<column name="deleted_on" type="localdatetime"/>
|
||||
<column name="deleted_by" type="varchar"/>
|
||||
<column name="current_approval_level" type="integer" notnull="true"/>
|
||||
<column name="required_approval_levels" type="integer" notnull="true"/>
|
||||
<column name="approval_status" type="varchar(8)" notnull="true" checkConstraint="check ( approval_status in ('PENDING','APPROVED','REJECTED'))" checkConstraintName="ck_entity_model_approval_status"/>
|
||||
<column name="tags" type="varchar[]" notnull="true"/>
|
||||
<column name="comments" type="jsonb" notnull="true"/>
|
||||
<column name="name" type="varchar" notnull="true"/>
|
||||
<column name="pre_save_script" type="varchar" notnull="true"/>
|
||||
<column name="post_save_script" type="varchar" notnull="true"/>
|
||||
<column name="actions" type="varchar[]" notnull="true"/>
|
||||
<column name="allowed_fields" type="varchar[]" notnull="true"/>
|
||||
<column name="allowed_field_types" type="jsonb" notnull="true"/>
|
||||
<column name="audit_log_fields" type="varchar[]" notnull="true"/>
|
||||
<column name="preferences" type="jsonb" notnull="true"/>
|
||||
<column name="approval_levels" type="integer" notnull="true"/>
|
||||
<column name="deleted" type="boolean" defaultValue="false" notnull="true"/>
|
||||
<column name="version" type="integer" notnull="true"/>
|
||||
<column name="created_at" type="localdatetime" notnull="true"/>
|
||||
<column name="modified_at" type="localdatetime" notnull="true"/>
|
||||
<column name="created_by" type="varchar" notnull="true"/>
|
||||
<column name="modified_by" type="varchar" notnull="true"/>
|
||||
<uniqueConstraint name="uq_entity_model_name" columnNames="name" oneToOne="false" nullableColumns=""/>
|
||||
</createTable>
|
||||
<createTable name="job_model" pkName="pk_job_model">
|
||||
<column name="sys_pk" type="bigint" primaryKey="true"/>
|
||||
<column name="tenant_id" type="varchar" notnull="true"/>
|
||||
<column name="deleted_on" type="localdatetime"/>
|
||||
<column name="deleted_by" type="varchar"/>
|
||||
<column name="current_approval_level" type="integer" notnull="true"/>
|
||||
<column name="required_approval_levels" type="integer" notnull="true"/>
|
||||
<column name="approval_status" type="varchar(8)" notnull="true" checkConstraint="check ( approval_status in ('PENDING','APPROVED','REJECTED'))" checkConstraintName="ck_job_model_approval_status"/>
|
||||
<column name="tags" type="varchar[]" notnull="true"/>
|
||||
<column name="comments" type="jsonb" notnull="true"/>
|
||||
<column name="job_name" type="varchar" notnull="true"/>
|
||||
<column name="job_type" type="varchar(6)" notnull="true" checkConstraint="check ( job_type in ('SCRIPT','DB'))" checkConstraintName="ck_job_model_job_type"/>
|
||||
<column name="job_path" type="varchar" notnull="true"/>
|
||||
<column name="tenants" type="varchar[]" notnull="true"/>
|
||||
<column name="job_frequency_type" type="varchar(8)" notnull="true" checkConstraint="check ( job_frequency_type in ('SPECIFIC','EVERY','CRON'))" checkConstraintName="ck_job_model_job_frequency_type"/>
|
||||
<column name="frequency" type="varchar" notnull="true"/>
|
||||
<column name="deleted" type="boolean" defaultValue="false" notnull="true"/>
|
||||
<column name="version" type="integer" notnull="true"/>
|
||||
<column name="created_at" type="localdatetime" notnull="true"/>
|
||||
<column name="modified_at" type="localdatetime" notnull="true"/>
|
||||
<column name="created_by" type="varchar" notnull="true"/>
|
||||
<column name="modified_by" type="varchar" notnull="true"/>
|
||||
<uniqueConstraint name="uq_job_model_job_name" columnNames="job_name" oneToOne="false" nullableColumns=""/>
|
||||
</createTable>
|
||||
<createTable name="tenant_model" pkName="pk_tenant_model">
|
||||
<column name="sys_pk" type="bigint" primaryKey="true"/>
|
||||
<column name="tenant_id" type="varchar" notnull="true"/>
|
||||
<column name="deleted_on" type="localdatetime"/>
|
||||
<column name="deleted_by" type="varchar"/>
|
||||
<column name="current_approval_level" type="integer" notnull="true"/>
|
||||
<column name="required_approval_levels" type="integer" notnull="true"/>
|
||||
<column name="approval_status" type="varchar(8)" notnull="true" checkConstraint="check ( approval_status in ('PENDING','APPROVED','REJECTED'))" checkConstraintName="ck_tenant_model_approval_status"/>
|
||||
<column name="tags" type="varchar[]" notnull="true"/>
|
||||
<column name="comments" type="jsonb" notnull="true"/>
|
||||
<column name="name" type="varchar" notnull="true"/>
|
||||
<column name="domain" type="varchar" notnull="true"/>
|
||||
<column name="preferences" type="jsonb" notnull="true"/>
|
||||
<column name="deleted" type="boolean" defaultValue="false" notnull="true"/>
|
||||
<column name="version" type="integer" notnull="true"/>
|
||||
<column name="created_at" type="localdatetime" notnull="true"/>
|
||||
<column name="modified_at" type="localdatetime" notnull="true"/>
|
||||
<column name="created_by" type="varchar" notnull="true"/>
|
||||
<column name="modified_by" type="varchar" notnull="true"/>
|
||||
</createTable>
|
||||
<createIndex indexName="ix_audit_log_audit_type_entity_unique_identifier_tenant_i_1" tableName="audit_log" columns="audit_type,entity,unique_identifier,tenant_id,created_by"/>
|
||||
<createIndex indexName="ix_audit_log_data" tableName="audit_log" columns="data" definition="create index audit_log_values_idx on audit_log using GIN (data) " platforms="POSTGRES"/>
|
||||
<createIndex indexName="ix_audit_log_changes" tableName="audit_log" columns="changes" definition="create index audit_log_changes_idx on audit_log using GIN (changes) " platforms="POSTGRES"/>
|
||||
<createIndex indexName="ix_data_model_data" tableName="data_model" columns="data" definition="create index data_jsonb_idx on data_model using GIN (data) " platforms="POSTGRES"/>
|
||||
</changeSet>
|
||||
</migration>
|
||||
Reference in New Issue
Block a user