-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path20240929100654_create_pass_tables.js
40 lines (36 loc) · 1.23 KB
/
20240929100654_create_pass_tables.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
const up = async function (knex) {
await knex.schema.createTable('devices', (table) => {
table.string('deviceLibraryIdentifier').primary();
table.string('pushToken').notNullable();
table.dateTime('created_at').notNullable().defaultTo(knex.fn.now());
});
await knex.schema.createTable('passes', (table) => {
table.string('passTypeIdentifier').notNullable();
table.string('serialNumber').notNullable().unique();
table.string('nextEvent').defaultTo(null);
table.timestamp('updated_at').notNullable().defaultTo(knex.fn.now());
});
await knex.schema.createTable('registrations', (table) => {
table.string('passTypeIdentifier');
table.string('serialNumber').references('passes.serialNumber');
table.string('deviceLibraryIdentifier').references('devices.deviceLibraryIdentifier');
table.dateTime('created_at').notNullable().defaultTo(knex.fn.now());
});
};
/**
* @param { import("knex").Knex } knex
* @returns { Promise<void> }
*/
const down = async function (knex) {
await knex.schema.dropTable('registrations');
await knex.schema.dropTable('passes');
await knex.schema.dropTable('devices');
};
export {
down,
up,
};