From 6c487d84134f38620075ea66462c1ce7606a2bad Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Thu, 21 Oct 2021 22:08:51 +0200 Subject: [PATCH] Add migrations --- ...695309_links.ts => 1634841204979_links.ts} | 10 ++++++-- database/migrations/1634841251307_clicks.ts | 23 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) rename database/migrations/{1618757695309_links.ts => 1634841204979_links.ts} (60%) mode change 100755 => 100644 create mode 100644 database/migrations/1634841251307_clicks.ts diff --git a/database/migrations/1618757695309_links.ts b/database/migrations/1634841204979_links.ts old mode 100755 new mode 100644 similarity index 60% rename from database/migrations/1618757695309_links.ts rename to database/migrations/1634841204979_links.ts index 5f6db70..93526c3 --- a/database/migrations/1618757695309_links.ts +++ b/database/migrations/1634841204979_links.ts @@ -5,10 +5,16 @@ export default class Links extends BaseSchema { public async up () { this.schema.createTable(this.tableName, (table) => { - table.increments('id') + table.increments('id').primary() table.string('code').notNullable() table.string('target').notNullable() - table.integer('visit_count').defaultTo(0) + table.string('type').defaultTo('PERMANENT') + table.timestamp('expire').defaultTo(this.now()) + table + .integer('author_id') + .unsigned() + .references('users.id') + .onDelete('CASCADE') table.timestamps(true) }) } diff --git a/database/migrations/1634841251307_clicks.ts b/database/migrations/1634841251307_clicks.ts new file mode 100644 index 0000000..75ba474 --- /dev/null +++ b/database/migrations/1634841251307_clicks.ts @@ -0,0 +1,23 @@ +import BaseSchema from '@ioc:Adonis/Lucid/Schema' + +export default class Clicks extends BaseSchema { + protected tableName = 'clicks' + + public async up () { + this.schema.createTable(this.tableName, (table) => { + table.increments('id').primary() + table + .integer('link_id') + .unsigned() + .references('links.id') + .onDelete('CASCADE') + table.string('country') + table.string('ip') + table.timestamp('date').defaultTo(this.now()) + }) + } + + public async down () { + this.schema.dropTable(this.tableName) + } +}