forked from geolba/tethys.backend
42 lines
1.7 KiB
TypeScript
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;
|