31 lines
973 B
JavaScript
31 lines
973 B
JavaScript
'use strict';
|
|
|
|
module.exports = {
|
|
up: async (queryInterface, Sequelize) => {
|
|
await queryInterface.sequelize.query(`
|
|
CREATE OR REPLACE FUNCTION community.update_hashed_id() RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.hashed_id = encode(digest(NEW.id::text, 'sha256'), 'hex');
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
`);
|
|
|
|
await queryInterface.sequelize.query(`
|
|
CREATE TRIGGER update_hashed_id_trigger
|
|
BEFORE INSERT OR UPDATE ON community.user
|
|
FOR EACH ROW EXECUTE FUNCTION community.update_hashed_id();
|
|
`);
|
|
},
|
|
|
|
down: async (queryInterface, Sequelize) => {
|
|
await queryInterface.sequelize.query(`
|
|
DROP TRIGGER IF EXISTS update_hashed_id_trigger ON community.user;
|
|
`);
|
|
|
|
await queryInterface.sequelize.query(`
|
|
DROP FUNCTION IF EXISTS community.update_hashed_id();
|
|
`);
|
|
}
|
|
};
|