From 924f34be5ffef91e22ddacf05db199a45a0adeaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20Hu=C3=9F?= Date: Thu, 6 May 2021 16:03:16 +0200 Subject: [PATCH] Migrate database by adding the donation info as node --- .../20210506150512-add-donations-node.js | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 backend/src/db/migrations/20210506150512-add-donations-node.js diff --git a/backend/src/db/migrations/20210506150512-add-donations-node.js b/backend/src/db/migrations/20210506150512-add-donations-node.js new file mode 100644 index 000000000..88dcb1ff9 --- /dev/null +++ b/backend/src/db/migrations/20210506150512-add-donations-node.js @@ -0,0 +1,66 @@ +import { getDriver } from '../../db/neo4j' +import { v4 as uuid } from 'uuid' + +export const description = + 'This migration adds a Donations node with default settings to the database.' + +export async function up(next) { + const driver = getDriver() + const session = driver.session() + const transaction = session.beginTransaction() + + try { + // Implement your migration here. + const donationId = uuid() + await transaction.run( + ` + CREATE (donationInfo:Donations) + SET donationInfo.id = $donationId + SET donationInfo.createdAt = toString(datetime()) + SET donationInfo.updatedAt = donationInfo.createdAt + SET donationInfo.showDonations = false + SET donationInfo.goal = 15000 + SET donationInfo.progress = 1200 + RETURN donationInfo {.*} + `, + { donationId }, + ) + await transaction.commit() + next() + } catch (error) { + // eslint-disable-next-line no-console + console.log(error) + await transaction.rollback() + // eslint-disable-next-line no-console + console.log('rolled back') + throw new Error(error) + } finally { + session.close() + } +} + +export async function down(next) { + const driver = getDriver() + const session = driver.session() + const transaction = session.beginTransaction() + + try { + // Implement your migration here. + await transaction.run(` + MATCH (donationInfo:Donations) + DETACH DELETE donationInfo + RETURN donationInfo + `) + await transaction.commit() + next() + } catch (error) { + // eslint-disable-next-line no-console + console.log(error) + await transaction.rollback() + // eslint-disable-next-line no-console + console.log('rolled back') + throw new Error(error) + } finally { + session.close() + } +}