
    create table dictionary (
       name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        dictionary_second_level integer,
        dictionary_type varchar(255),
        primary key (name)
    ) engine=InnoDB;

    create table dictionary_elements (
       short_name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        description varchar(255) not null,
        name varchar(255) not null,
        subdictionary_name varchar(255),
        type varchar(255) not null,
        primary key (short_name)
    ) engine=InnoDB;

    create table dictionary_to_dictionaryelements (
       dictionary_name varchar(255) not null,
        dictionary_element_short_name varchar(255) not null,
        primary key (dictionary_name, dictionary_element_short_name)
    ) engine=InnoDB;

    create table hibernate_sequence (
       next_val bigint
    ) engine=InnoDB;

    insert into hibernate_sequence values ( 1 );

    create table loop_element_models (
       name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        blueprint_yaml MEDIUMTEXT,
        dcae_blueprint_id varchar(255),
        loop_element_type varchar(255) not null,
        short_name varchar(255),
        primary key (name)
    ) engine=InnoDB;

    create table loop_logs (
       id bigint not null,
        log_component varchar(255) not null,
        log_instant datetime(6) not null,
        log_type varchar(255) not null,
        message MEDIUMTEXT not null,
        loop_id varchar(255) not null,
        primary key (id)
    ) engine=InnoDB;

    create table loop_templates (
       name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        allowed_loop_type varchar(255),
        blueprint_yaml MEDIUMTEXT,
        dcae_blueprint_id varchar(255),
        maximum_instances_allowed integer,
        svg_representation MEDIUMTEXT,
        unique_blueprint boolean default false,
        service_uuid varchar(255),
        primary key (name)
    ) engine=InnoDB;

    create table loopelementmodels_to_policymodels (
       loop_element_name varchar(255) not null,
        policy_model_type varchar(255) not null,
        policy_model_version varchar(255) not null,
        primary key (loop_element_name, policy_model_type, policy_model_version)
    ) engine=InnoDB;

    create table loops (
       name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        dcae_deployment_id varchar(255),
        dcae_deployment_status_url varchar(255),
        global_properties_json json,
        last_computed_state varchar(255) not null,
        svg_representation MEDIUMTEXT,
        loop_template_name varchar(255) not null,
        service_uuid varchar(255),
        primary key (name)
    ) engine=InnoDB;

    create table loops_to_microservicepolicies (
       loop_name varchar(255) not null,
        microservicepolicy_name varchar(255) not null,
        primary key (loop_name, microservicepolicy_name)
    ) engine=InnoDB;

    create table looptemplates_to_loopelementmodels (
       loop_element_model_name varchar(255) not null,
        loop_template_name varchar(255) not null,
        flow_order integer not null,
        primary key (loop_element_model_name, loop_template_name)
    ) engine=InnoDB;

    create table micro_service_policies (
       name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        configurations_json json,
        json_representation json not null,
        pdp_group varchar(255),
        context varchar(255),
        dcae_blueprint_id varchar(255),
        dcae_deployment_id varchar(255),
        dcae_deployment_status_url varchar(255),
        device_type_scope varchar(255),
        shared bit not null,
        loop_element_model_id varchar(255),
        policy_model_type varchar(255),
        policy_model_version varchar(255),
        primary key (name)
    ) engine=InnoDB;

    create table operational_policies (
       name varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        configurations_json json,
        json_representation json not null,
        pdp_group varchar(255),
        loop_element_model_id varchar(255),
        loop_id varchar(255) not null,
        policy_model_type varchar(255),
        policy_model_version varchar(255),
        primary key (name)
    ) engine=InnoDB;

    create table policy_models (
       policy_model_type varchar(255) not null,
        version varchar(255) not null,
        created_by varchar(255),
        created_timestamp datetime(6) not null,
        updated_by varchar(255),
        updated_timestamp datetime(6) not null,
        policy_acronym varchar(255),
        policy_tosca MEDIUMTEXT,
        primary key (policy_model_type, version)
    ) engine=InnoDB;

    create table services (
       service_uuid varchar(255) not null,
        name varchar(255) not null,
        resource_details json,
        service_details json,
        version varchar(255),
        primary key (service_uuid)
    ) engine=InnoDB;

    alter table dictionary_to_dictionaryelements 
       add constraint FK68hjjinnm8nte2owstd0xwp23 
       foreign key (dictionary_element_short_name) 
       references dictionary_elements (short_name);

    alter table dictionary_to_dictionaryelements 
       add constraint FKtqfxg46gsxwlm2gkl6ne3cxfe 
       foreign key (dictionary_name) 
       references dictionary (name);

    alter table loop_logs 
       add constraint FK1j0cda46aickcaoxqoo34khg2 
       foreign key (loop_id) 
       references loops (name);

    alter table loop_templates 
       add constraint FKn692dk6281wvp1o95074uacn6 
       foreign key (service_uuid) 
       references services (service_uuid);

    alter table loopelementmodels_to_policymodels 
       add constraint FK23j2q74v6kaexefy0tdabsnda 
       foreign key (policy_model_type, policy_model_version) 
       references policy_models (policy_model_type, version);

    alter table loopelementmodels_to_policymodels 
       add constraint FKjag1iu0olojfwryfkvb5o0rk5 
       foreign key (loop_element_name) 
       references loop_element_models (name);

    alter table loops 
       add constraint FK844uwy82wt0l66jljkjqembpj 
       foreign key (loop_template_name) 
       references loop_templates (name);

    alter table loops 
       add constraint FK4b9wnqopxogwek014i1shqw7w 
       foreign key (service_uuid) 
       references services (service_uuid);

    alter table loops_to_microservicepolicies 
       add constraint FKle255jmi7b065fwbvmwbiehtb 
       foreign key (microservicepolicy_name) 
       references micro_service_policies (name);

    alter table loops_to_microservicepolicies 
       add constraint FK8avfqaf7xl71l7sn7a5eri68d 
       foreign key (loop_name) 
       references loops (name);

    alter table looptemplates_to_loopelementmodels 
       add constraint FK1k7nbrbugvqa0xfxkq3cj1yn9 
       foreign key (loop_element_model_name) 
       references loop_element_models (name);

    alter table looptemplates_to_loopelementmodels 
       add constraint FKj29yxyw0x7ue6mwgi6d3qg748 
       foreign key (loop_template_name) 
       references loop_templates (name);

    alter table micro_service_policies 
       add constraint FKqvvdypacbww07fuv8xvlvdjgl 
       foreign key (loop_element_model_id) 
       references loop_element_models (name);

    alter table micro_service_policies 
       add constraint FKn17j9ufmyhqicb6cvr1dbjvkt 
       foreign key (policy_model_type, policy_model_version) 
       references policy_models (policy_model_type, version);

    alter table operational_policies 
       add constraint FKi9kh7my40737xeuaye9xwbnko 
       foreign key (loop_element_model_id) 
       references loop_element_models (name);

    alter table operational_policies 
       add constraint FK1ddoggk9ni2bnqighv6ecmuwu 
       foreign key (loop_id) 
       references loops (name);

    alter table operational_policies 
       add constraint FKlsyhfkoqvkwj78ofepxhoctip 
       foreign key (policy_model_type, policy_model_version) 
       references policy_models (policy_model_type, version);
