aboutsummaryrefslogtreecommitdiff
path: root/db
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
downloadmodmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.tar.xz
modmail-2a53887abba882bf7b63aeda8dfa55fdb3ab8792.zip
clean this up when home
Diffstat (limited to 'db')
-rw-r--r--db/.gitignore.example3
-rw-r--r--db/data.sqlitebin0 -> 86016 bytes
-rw-r--r--db/migrations/20171223203915_create_tables.js45
-rw-r--r--db/migrations/20180224235946_add_close_at_to_threads.js15
-rw-r--r--db/migrations/20180421161550_add_alert_id_to_threads.js11
-rw-r--r--db/migrations/20180920224224_remove_is_anonymous_from_snippets.js11
-rw-r--r--db/migrations/20190306204728_add_scheduled_close_silent_to_threads.js11
-rw-r--r--db/migrations/20190306211534_add_scheduled_suspend_to_threads.js15
-rw-r--r--db/migrations/20190609161116_create_updates_table.js14
-rw-r--r--db/migrations/20190609193213_add_expires_at_to_blocked_users.js11
10 files changed, 136 insertions, 0 deletions
diff --git a/db/.gitignore.example b/db/.gitignore.example
new file mode 100644
index 0000000..08f41a1
--- /dev/null
+++ b/db/.gitignore.example
@@ -0,0 +1,3 @@
+/*
+!/.gitignore
+!/migrations/
diff --git a/db/data.sqlite b/db/data.sqlite
new file mode 100644
index 0000000..967e6c5
--- /dev/null
+++ b/db/data.sqlite
Binary files differ
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');
+};
diff --git a/db/migrations/20180224235946_add_close_at_to_threads.js b/db/migrations/20180224235946_add_close_at_to_threads.js
new file mode 100644
index 0000000..dbbb04d
--- /dev/null
+++ b/db/migrations/20180224235946_add_close_at_to_threads.js
@@ -0,0 +1,15 @@
+exports.up = async function (knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.dateTime('scheduled_close_at').index().nullable().defaultTo(null).after('channel_id');
+ table.string('scheduled_close_id', 20).nullable().defaultTo(null).after('channel_id');
+ table.string('scheduled_close_name', 128).nullable().defaultTo(null).after('channel_id');
+ });
+};
+
+exports.down = async function(knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.dropColumn('scheduled_close_at');
+ table.dropColumn('scheduled_close_id');
+ table.dropColumn('scheduled_close_name');
+ });
+};
diff --git a/db/migrations/20180421161550_add_alert_id_to_threads.js b/db/migrations/20180421161550_add_alert_id_to_threads.js
new file mode 100644
index 0000000..5defc38
--- /dev/null
+++ b/db/migrations/20180421161550_add_alert_id_to_threads.js
@@ -0,0 +1,11 @@
+exports.up = async function (knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.string('alert_id', 20).nullable().defaultTo(null).after('scheduled_close_name');
+ });
+};
+
+exports.down = async function(knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.dropColumn('alert_id');
+ });
+};
diff --git a/db/migrations/20180920224224_remove_is_anonymous_from_snippets.js b/db/migrations/20180920224224_remove_is_anonymous_from_snippets.js
new file mode 100644
index 0000000..ac33267
--- /dev/null
+++ b/db/migrations/20180920224224_remove_is_anonymous_from_snippets.js
@@ -0,0 +1,11 @@
+exports.up = async function (knex, Promise) {
+ await knex.schema.table('snippets', table => {
+ table.dropColumn('is_anonymous');
+ });
+};
+
+exports.down = async function(knex, Promise) {
+ await knex.schema.table('snippets', table => {
+ table.integer('is_anonymous').unsigned().notNullable();
+ });
+};
diff --git a/db/migrations/20190306204728_add_scheduled_close_silent_to_threads.js b/db/migrations/20190306204728_add_scheduled_close_silent_to_threads.js
new file mode 100644
index 0000000..e61490d
--- /dev/null
+++ b/db/migrations/20190306204728_add_scheduled_close_silent_to_threads.js
@@ -0,0 +1,11 @@
+exports.up = async function(knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.integer('scheduled_close_silent').nullable().after('scheduled_close_name');
+ });
+};
+
+exports.down = async function(knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.dropColumn('scheduled_close_silent');
+ });
+};
diff --git a/db/migrations/20190306211534_add_scheduled_suspend_to_threads.js b/db/migrations/20190306211534_add_scheduled_suspend_to_threads.js
new file mode 100644
index 0000000..a22b5f3
--- /dev/null
+++ b/db/migrations/20190306211534_add_scheduled_suspend_to_threads.js
@@ -0,0 +1,15 @@
+exports.up = async function(knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.dateTime('scheduled_suspend_at').index().nullable().defaultTo(null).after('channel_id');
+ table.string('scheduled_suspend_id', 20).nullable().defaultTo(null).after('channel_id');
+ table.string('scheduled_suspend_name', 128).nullable().defaultTo(null).after('channel_id');
+ });
+};
+
+exports.down = async function(knex, Promise) {
+ await knex.schema.table('threads', table => {
+ table.dropColumn('scheduled_suspend_at');
+ table.dropColumn('scheduled_suspend_id');
+ table.dropColumn('scheduled_suspend_name');
+ });
+};
diff --git a/db/migrations/20190609161116_create_updates_table.js b/db/migrations/20190609161116_create_updates_table.js
new file mode 100644
index 0000000..c90e9bd
--- /dev/null
+++ b/db/migrations/20190609161116_create_updates_table.js
@@ -0,0 +1,14 @@
+exports.up = async function(knex, Promise) {
+ if (! await knex.schema.hasTable('updates')) {
+ await knex.schema.createTable('updates', table => {
+ table.string('available_version', 16).nullable();
+ table.dateTime('last_checked').nullable();
+ });
+ }
+};
+
+exports.down = async function(knex, Promise) {
+ if (await knex.schema.hasTable('updates')) {
+ await knex.schema.dropTable('updates');
+ }
+};
diff --git a/db/migrations/20190609193213_add_expires_at_to_blocked_users.js b/db/migrations/20190609193213_add_expires_at_to_blocked_users.js
new file mode 100644
index 0000000..ea456a6
--- /dev/null
+++ b/db/migrations/20190609193213_add_expires_at_to_blocked_users.js
@@ -0,0 +1,11 @@
+exports.up = async function(knex, Promise) {
+ await knex.schema.table('blocked_users', table => {
+ table.dateTime('expires_at').nullable();
+ });
+};
+
+exports.down = async function(knex, Promise) {
+ await knex.schema.table('blocked_users', table => {
+ table.dropColumn('expires_at');
+ });
+};