28 lines
651 B
JavaScript
28 lines
651 B
JavaScript
exports.up = async knex => {
|
|
await knex.schema.createTable('wants', table => {
|
|
table.uuid('id')
|
|
.primary()
|
|
.defaultTo(knex.raw('gen_random_uuid()'));
|
|
|
|
table.integer('release')
|
|
.notNullable()
|
|
.index();
|
|
|
|
table.uuid('user')
|
|
table.foreign('user')
|
|
.references('id')
|
|
.inTable('users')
|
|
.onDelete('CASCADE');
|
|
|
|
table.jsonb('data')
|
|
.notNullable();
|
|
|
|
// user can only want a release once
|
|
table.unique(['user', 'release']);
|
|
|
|
table.timestamps(true, true);
|
|
});
|
|
};
|
|
|
|
exports.down = async () => true;
|