aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/20171223203915_create_tables.js
diff options
context:
space:
mode:
authorSin-MacBook <[email protected]>2020-08-10 23:44:20 +0200
committerSin-MacBook <[email protected]>2020-08-10 23:44:20 +0200
commit2a53887abba882bf7b63aeda8dfa55fdb3ab8792 (patch)
treead7a95eb41faa6ff13c3142285cdc0eb3ca92183 /db/migrations/20171223203915_create_tables.js
downloadmodmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.tar.xz
modmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.zip
clean this up when home
Diffstat (limited to 'db/migrations/20171223203915_create_tables.js')
-rw-r--r--db/migrations/20171223203915_create_tables.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/db/migrations/20171223203915_create_tables.js b/db/migrations/20171223203915_create_tables.js
new file mode 100644
index 0000000..b5880a3
--- /dev/null
+++ b/db/migrations/20171223203915_create_tables.js
@@ -0,0 +1,45 @@
+exports.up = async function(knex, Promise) {
+ await knex.schema.createTableIfNotExists('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();
+ });
+
+ await knex.schema.createTableIfNotExists('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();
+ });
+
+ await knex.schema.createTableIfNotExists('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();
+ });
+
+ await knex.schema.createTableIfNotExists('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) {
+ await knex.schema.dropTableIfExists('thread_messages');
+ await knex.schema.dropTableIfExists('threads');
+ await knex.schema.dropTableIfExists('blocked_users');
+ await knex.schema.dropTableIfExists('snippets');
+};