From 760112475cbbd9be2fd48cf4ccaac1b13980ddd4 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Wed, 8 Jul 2020 14:41:12 -0400 Subject: [PATCH] Setup migrations --- src/database/index.ts | 11 +++++++++++ src/database/migrations/.gitkeep | 0 src/database/seeds/activity.ts | 19 +++++++++++++++++++ src/database/seeds/collection-presets.ts | 19 +++++++++++++++++++ src/database/seeds/readme.md | 4 ++++ 5 files changed, 53 insertions(+) create mode 100644 src/database/migrations/.gitkeep create mode 100644 src/database/seeds/activity.ts create mode 100644 src/database/seeds/collection-presets.ts create mode 100644 src/database/seeds/readme.md diff --git a/src/database/index.ts b/src/database/index.ts index 1700c83fdb..cc41e511ef 100644 --- a/src/database/index.ts +++ b/src/database/index.ts @@ -1,8 +1,11 @@ import knex from 'knex'; import logger from '../logger'; +import dotenv from 'dotenv'; import SchemaInspector from '../knex-schema-inspector/lib/index'; +dotenv.config(); + const log = logger.child({ module: 'sql' }); const database = knex({ @@ -14,6 +17,14 @@ const database = knex({ password: process.env.DB_PASSWORD, database: process.env.DB_NAME, }, + migrations: { + extension: 'ts', + directory: './src/database/migrations', + }, + seeds: { + extension: 'ts', + directory: './src/database/seeds/', + }, }); database.on('query', (data) => log.trace(data.sql)); diff --git a/src/database/migrations/.gitkeep b/src/database/migrations/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/database/seeds/activity.ts b/src/database/seeds/activity.ts new file mode 100644 index 0000000000..a5d0126790 --- /dev/null +++ b/src/database/seeds/activity.ts @@ -0,0 +1,19 @@ +import * as Knex from 'knex'; + +export async function seed(knex: Knex): Promise { + await knex.schema.dropTableIfExists('directus_activity'); + + await knex.schema.createTable('directus_activity', (table) => { + table.increments().notNullable(); + table.string('action', 45).notNullable(); + table.uuid('action_by').nullable(); + // table.foreign('action_by').references('directus_users.id'); + table.timestamp('action_on').defaultTo(knex.fn.now()).notNullable(); + table.string('ip', 50).notNullable(); + table.string('user_agent').notNullable(); + table.string('collection', 64).notNullable(); + // table.foreign('collection').references('directus_collections.collection'); + table.string('item').notNullable(); + table.text('comment').nullable(); + }); +} diff --git a/src/database/seeds/collection-presets.ts b/src/database/seeds/collection-presets.ts new file mode 100644 index 0000000000..a56194bf1b --- /dev/null +++ b/src/database/seeds/collection-presets.ts @@ -0,0 +1,19 @@ +import * as Knex from 'knex'; + +export async function seed(knex: Knex): Promise { + await knex.schema.dropTableIfExists('directus_collection_presets'); + + await knex.schema.createTable('directus_collection_presets', (table) => { + table.increments().notNullable(); + table.string('title').nullable(); + table.uuid('user').nullable(); + table.string('collection', 64).notNullable(); + // table.foreign('collection').references('directus_collections.collection'); + table.string('search_query', 100).nullable(); + table.json('filters').nullable(); + table.string('view_type', 100).notNullable(); + table.json('view_query').nullable(); + table.json('view_options').nullable(); + table.uuid('role').nullable(); + }); +} diff --git a/src/database/seeds/readme.md b/src/database/seeds/readme.md new file mode 100644 index 0000000000..6e898c3797 --- /dev/null +++ b/src/database/seeds/readme.md @@ -0,0 +1,4 @@ +This is obviously incomplete. + +The DB schema is still being worked on. The seeds should be finished once we're closer to release and have a release ready +db schema