import BaseSchema from '@ioc:Adonis/Lucid/Schema'; import { SubjectTypes } from 'Contracts/enums'; export default class DatasetSubjects extends BaseSchema { protected tableName = 'dataset_subjects'; public async up() { this.schema.createTable(this.tableName, (table) => { table.bigIncrements('id').defaultTo("nextval('dataset_subjects_id_seq')"); table.string('language', 3); // table.string('type', 255).notNullable().defaultTo('uncontrolled'); table.enum('type', Object.values(SubjectTypes)).defaultTo('uncontrolled'); table.string('value', 255).notNullable(); table.string('external_key', 255); table.timestamp('created_at', { useTz: false }).nullable(); table.timestamp('updated_at', { useTz: false }).nullable(); }); } public async down() { this.schema.dropTable(this.tableName); } } // -- Table: dataset_subjects // CREATE TABLE IF NOT EXISTS dataset_subjects // ( // id bigint NOT NULL DEFAULT nextval('dataset_subjects_id_seq'::regclass), // language character varying(3), // type character varying(255) NOT NULL, // value character varying(255) NOT NULL, // external_key character varying(255), // created_at timestamp(0) without time zone, // updated_at timestamp(0) without time zone, // CONSTRAINT dataset_subjects_pkey PRIMARY KEY (id), // CONSTRAINT dataset_subjects_type_check CHECK (type::text = 'uncontrolled'::text) // ) // ALTER TABLE IF EXISTS dataset_subjects OWNER to tethys_admin; // REVOKE ALL ON TABLE dataset_subjects FROM tethys_app; // GRANT ALL ON TABLE dataset_subjects TO tethys_admin; // GRANT DELETE, UPDATE, INSERT, SELECT ON TABLE dataset_subjects TO tethys_app;