From 5931e363ef6f69aad58d8352f9adfb6388fccdb3 Mon Sep 17 00:00:00 2001 From: mattwr18 Date: Mon, 3 Feb 2020 19:17:48 +0100 Subject: [PATCH] Use original createdAt for merged users/emails (#2969) - Also, use original verifiedAt date for emails. These users only have newly created accounts/emails because of our blunder. Their nodes should reflect when they became members/verified their emails. --- .../20200123150105-merge_duplicate_user_accounts.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/src/db/migrations/20200123150105-merge_duplicate_user_accounts.js b/backend/src/db/migrations/20200123150105-merge_duplicate_user_accounts.js index ec38befc5..377f971e9 100644 --- a/backend/src/db/migrations/20200123150105-merge_duplicate_user_accounts.js +++ b/backend/src/db/migrations/20200123150105-merge_duplicate_user_accounts.js @@ -34,12 +34,11 @@ export function up(next) { return txc .run( ` - MATCH (oldUser:User)-[:PRIMARY_EMAIL]->(oldEmail:EmailAddress {email: $email}), (oldUser)-[previousRelationship]-(oldEmail) + MATCH (oldUser:User)-[:PRIMARY_EMAIL]->(oldEmail:EmailAddress {email: $email}) MATCH (user:User)-[:PRIMARY_EMAIL]->(email:EmailAddress {email: $normalizedEmail}) - DELETE previousRelationship WITH oldUser, oldEmail, user, email - CALL apoc.refactor.mergeNodes([user, oldUser], { properties: 'discard', mergeRels: true }) YIELD node as mergedUser - CALL apoc.refactor.mergeNodes([email, oldEmail], { properties: 'discard', mergeRels: true }) YIELD node as mergedEmail + CALL apoc.refactor.mergeNodes([user, oldUser], { properties: { createdAt: 'overwrite', \`.*\`: 'discard' }, mergeRels: true }) YIELD node as mergedUser + CALL apoc.refactor.mergeNodes([email, oldEmail], { properties: { createdAt: 'overwrite', verifiedAt: 'overwrite', \`.*\`: 'discard' }, mergeRels: true }) YIELD node as mergedEmail RETURN user {.*}, email {.*} `, { email, normalizedEmail },