tethys.backend/database/migrations/dataset_11_subjects.ts
2023-04-24 13:03:36 +02:00

42 lines
1.7 KiB
TypeScript

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;