36 lines
749 B
JavaScript
36 lines
749 B
JavaScript
exports.up = async function(knex) {
|
|
await knex.schema.createTable('media_biometrics', (table) => {
|
|
table.increments('id');
|
|
|
|
table.string('media_id', 21)
|
|
.references('id')
|
|
.inTable('media')
|
|
.notNullable()
|
|
.onDelete('cascade');
|
|
|
|
table.integer('width');
|
|
table.integer('height');
|
|
|
|
table.integer('face_index')
|
|
.notNullable()
|
|
.defaultTo(0);
|
|
|
|
table.json('biometrics');
|
|
table.specificType('embedding', 'vector(1024)');
|
|
|
|
table.datetime('updated_at')
|
|
.notNullable()
|
|
.defaultTo(knex.fn.now());
|
|
|
|
table.datetime('created_at')
|
|
.notNullable()
|
|
.defaultTo(knex.fn.now());
|
|
|
|
table.unique(['media_id', 'face_index']);
|
|
});
|
|
};
|
|
|
|
exports.down = async function(knex) {
|
|
await knex.schema.dropTable('media_biometrics');
|
|
};
|