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'); };