28 lines
895 B
JavaScript
28 lines
895 B
JavaScript
// forwarded_from jsonb shape change: was a bare PublicUser snapshot, now a
|
|
// ForwardOrigin {name, user} so channel forwards can carry a name without a
|
|
// profile link. Rewrites existing rows in place (guarded, idempotent).
|
|
|
|
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
|
|
exports.up = (pgm) => {
|
|
pgm.sql(`
|
|
UPDATE messages
|
|
SET forwarded_from = jsonb_build_object(
|
|
'name', forwarded_from->>'displayName',
|
|
'user', forwarded_from
|
|
)
|
|
WHERE forwarded_from IS NOT NULL
|
|
AND forwarded_from ? 'displayName'
|
|
AND NOT (forwarded_from ? 'user');
|
|
`);
|
|
};
|
|
|
|
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
|
|
exports.down = (pgm) => {
|
|
pgm.sql(`
|
|
UPDATE messages
|
|
SET forwarded_from = forwarded_from->'user'
|
|
WHERE forwarded_from IS NOT NULL
|
|
AND forwarded_from ? 'user'
|
|
AND forwarded_from->'user' IS NOT NULL;
|
|
`);
|
|
};
|