diff options
| author | Sin-MacBook <[email protected]> | 2020-08-10 23:44:20 +0200 |
|---|---|---|
| committer | Sin-MacBook <[email protected]> | 2020-08-10 23:44:20 +0200 |
| commit | 2a53887abba882bf7b63aeda8dfa55fdb3ab8792 (patch) | |
| tree | ad7a95eb41faa6ff13c3142285cdc0eb3ca92183 /db/migrations/20171223203915_create_tables.js | |
| download | modmail-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.js | 45 |
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'); +}; |