forked from geolba/tethys.backend
56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
// node ace make:migration backupcodes
|
|
import { BaseSchema } from '@adonisjs/lucid/schema';
|
|
|
|
export default class extends BaseSchema {
|
|
protected tableName = 'backupcodes';
|
|
|
|
async up() {
|
|
this.schema.createTable(this.tableName, (table) => {
|
|
table.increments('id');
|
|
|
|
table.integer('user_id').unsigned();
|
|
table.string('code', 64).notNullable();
|
|
table.boolean('used').defaultTo(false);
|
|
|
|
table.foreign('user_id').references('id').inTable('accounts').onUpdate('CASCADE').onDelete('CASCADE');
|
|
|
|
table.index('user_id', 'backupcodes_uid');
|
|
});
|
|
}
|
|
|
|
async down() {
|
|
this.schema.dropTable(this.tableName);
|
|
}
|
|
}
|
|
|
|
// CREATE SEQUENCE IF NOT EXISTS gba.backupcodes_id_seq
|
|
// INCREMENT 1
|
|
// START 1
|
|
// MINVALUE 1
|
|
// MAXVALUE 2147483647
|
|
// CACHE 1;
|
|
|
|
// ALTER SEQUENCE gba.backupcodes_id_seq
|
|
// OWNER TO tethys_admin;
|
|
|
|
// GRANT ALL ON SEQUENCE gba.backupcodes_id_seq TO tethys_admin;
|
|
|
|
// GRANT USAGE ON SEQUENCE gba.backupcodes_id_seq TO tethys_app;
|
|
|
|
// CREATE TABLE IF NOT EXISTS gba.backupcodes
|
|
// (
|
|
// id integer NOT NULL DEFAULT nextval('gba.backupcodes_id_seq'::regclass),
|
|
// user_id integer,
|
|
// code character varying(64) NOT NULL,
|
|
// used boolean NOT NULL DEFAULT false,
|
|
// CONSTRAINT backupcodes_user_id_foreign FOREIGN KEY (user_id)
|
|
// REFERENCES gba.accounts (id) MATCH SIMPLE
|
|
// ON UPDATE CASCADE
|
|
// ON DELETE CASCADE,
|
|
// CONSTRAINT backupcodes_pkey PRIMARY KEY (id)
|
|
// )
|
|
|
|
// CREATE INDEX IF NOT EXISTS backupcodes_uid
|
|
// ON gba.backupcodes USING btree
|
|
// (user_id ASC);
|