From c795e19663a93c24908a7318975f820bac63164f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 3 Aug 2022 15:08:36 +0200 Subject: Automatically rebuild native modules on ABI change --- .../initializers/migrations/0725-node-version.ts | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 server/initializers/migrations/0725-node-version.ts (limited to 'server/initializers/migrations/0725-node-version.ts') diff --git a/server/initializers/migrations/0725-node-version.ts b/server/initializers/migrations/0725-node-version.ts new file mode 100644 index 000000000..d8b9cc750 --- /dev/null +++ b/server/initializers/migrations/0725-node-version.ts @@ -0,0 +1,66 @@ +import * as Sequelize from 'sequelize' + +async function up (utils: { + transaction: Sequelize.Transaction + queryInterface: Sequelize.QueryInterface + sequelize: Sequelize.Sequelize + db: any +}): Promise { + const { transaction } = utils + + { + const data = { + type: Sequelize.STRING, + defaultValue: null, + allowNull: true + } + await utils.queryInterface.addColumn('application', 'nodeVersion', data, { transaction }) + } + + { + const data = { + type: Sequelize.STRING, + defaultValue: null, + allowNull: true + } + await utils.queryInterface.addColumn('application', 'nodeABIVersion', data, { transaction }) + } + + { + const query = `UPDATE "application" SET "nodeVersion" = '${process.version}'` + await utils.sequelize.query(query, { transaction }) + } + + { + const nodeABIVersion = parseInt(process.versions.modules) + const query = `UPDATE "application" SET "nodeABIVersion" = ${nodeABIVersion}` + await utils.sequelize.query(query, { transaction }) + } + + { + const data = { + type: Sequelize.STRING, + defaultValue: null, + allowNull: false + } + await utils.queryInterface.changeColumn('application', 'nodeVersion', data, { transaction }) + } + + { + const data = { + type: Sequelize.STRING, + defaultValue: null, + allowNull: false + } + await utils.queryInterface.changeColumn('application', 'nodeABIVersion', data, { transaction }) + } +} + +function down (options) { + throw new Error('Not implemented.') +} + +export { + up, + down +} -- cgit v1.2.3