'use strict'; exports.up = async (pgm) => { pgm.createTable('identity_password_reset_tokens', { id: { type: 'uuid', primaryKey: true, default: pgm.func('gen_random_uuid()') }, user_id: { type: 'uuid', notNull: true, references: 'identity_users(id)', onDelete: 'CASCADE' }, token_hash: { type: 'text', notNull: true, unique: true }, expires_at: { type: 'timestamptz', notNull: true }, used_at: { type: 'timestamptz' }, request_ip: { type: 'text' }, request_user_agent: { type: 'text' }, created_at: { type: 'timestamptz', notNull: true, default: pgm.func('now()') }, }); pgm.createIndex('identity_password_reset_tokens', 'user_id'); pgm.createIndex('identity_password_reset_tokens', 'expires_at'); }; exports.down = async (pgm) => { pgm.dropTable('identity_password_reset_tokens'); };