65 lines
2.4 KiB
JavaScript
65 lines
2.4 KiB
JavaScript
exports.up = async function(knex, Promise) {
|
|
if (! await knex.schema.hasTable("threads")) {
|
|
await knex.schema.createTable("threads", table => {
|
|
table.string("id", 36).notNullable().primary();
|
|
table.integer("status").unsigned().notNullable().index();
|
|
table.integer("is_legacy").unsigned().notNullable();
|
|
table.string("user_id", 20).notNullable().index();
|
|
table.string("user_name", 128).notNullable();
|
|
table.string("channel_id", 20).nullable().unique();
|
|
table.dateTime("created_at").notNullable().index();
|
|
});
|
|
}
|
|
|
|
if (! await knex.schema.hasTable("thread_messages")) {
|
|
await knex.schema.createTable("thread_messages", table => {
|
|
table.increments("id");
|
|
table.string("thread_id", 36).notNullable().index().references("id").inTable("threads").onDelete("CASCADE");
|
|
table.integer("message_type").unsigned().notNullable();
|
|
table.string("user_id", 20).nullable();
|
|
table.string("user_name", 128).notNullable();
|
|
table.mediumtext("body").notNullable();
|
|
table.integer("is_anonymous").unsigned().notNullable();
|
|
table.string("dm_message_id", 20).nullable().unique();
|
|
table.dateTime("created_at").notNullable().index();
|
|
});
|
|
}
|
|
|
|
if (! await knex.schema.hasTable("blocked_users")) {
|
|
await knex.schema.createTable("blocked_users", table => {
|
|
table.string("user_id", 20).primary().notNullable();
|
|
table.string("user_name", 128).notNullable();
|
|
table.string("blocked_by", 20).nullable();
|
|
table.dateTime("blocked_at").notNullable();
|
|
});
|
|
}
|
|
|
|
if (! await knex.schema.hasTable("snippets")) {
|
|
await knex.schema.createTable("snippets", table => {
|
|
table.string("trigger", 32).primary().notNullable();
|
|
table.text("body").notNullable();
|
|
table.integer("is_anonymous").unsigned().notNullable();
|
|
table.string("created_by", 20).nullable();
|
|
table.dateTime("created_at").notNullable();
|
|
});
|
|
}
|
|
};
|
|
|
|
exports.down = async function(knex, Promise) {
|
|
if (await knex.schema.hasTable("thread_messages")) {
|
|
await knex.schema.dropTable("thread_messages");
|
|
}
|
|
|
|
if (await knex.schema.hasTable("threads")) {
|
|
await knex.schema.dropTable("threads");
|
|
}
|
|
|
|
if (await knex.schema.hasTable("blocked_users")) {
|
|
await knex.schema.dropTable("blocked_users");
|
|
}
|
|
|
|
if (await knex.schema.hasTable("snippets")) {
|
|
await knex.schema.dropTable("snippets");
|
|
}
|
|
};
|