我如何 运行 Sequelize 迁移以使用导入函数的响应更新字段?
How can i run a Sequelize migration to update a field with the response from an imported function?
'use strict';
const { getAddressCoord } = require('../../lib/geo');
module.exports = {
up: async (queryInterface, Sequelize) => {
const db = queryInterface.sequelize;
await db.query('start transaction;');
await queryInterface.sequelize.query(`UPDATE users SET "homeMarket" = ${(await
getAddressCoord("address")).id || null} WHERE "homeMarket" IS NULL AND "address" IS NOT
NULL`);
await queryInterface.sequelize.query(`UPDATE users SET "homeMarketName" = ${(await
getAddressCoord("address")).name || null} WHERE "homeMarket" IS NULL AND "address" IS NOT
NULL`);
await db.query('commit;');
},
down: async (queryInterface, Sequelize) => {
const db = queryInterface.sequelize;
await db.query('start transaction;');
await queryInterface.sequelize.query(`UPDATE users SET "homeMarket" = ("identity" -> 'area'
-> 'id')::int`);
await queryInterface.sequelize.query(`UPDATE users SET "homeMarketName" = ("identity"::json
-> 'area' ->> 'name')`);
await db.query('commit;');
},
};
我希望使用 getAddressCoord 函数的响应更新该字段,getAddressCoord 函数接收列中的地址值。
我该怎么做?
在项目中导入并要求尝试。
在迁移文件中重写了所有需要的函数,并进行了函数调用。
'use strict';
const { getAddressCoord } = require('../../lib/geo');
module.exports = {
up: async (queryInterface, Sequelize) => {
const db = queryInterface.sequelize;
await db.query('start transaction;');
await queryInterface.sequelize.query(`UPDATE users SET "homeMarket" = ${(await
getAddressCoord("address")).id || null} WHERE "homeMarket" IS NULL AND "address" IS NOT
NULL`);
await queryInterface.sequelize.query(`UPDATE users SET "homeMarketName" = ${(await
getAddressCoord("address")).name || null} WHERE "homeMarket" IS NULL AND "address" IS NOT
NULL`);
await db.query('commit;');
},
down: async (queryInterface, Sequelize) => {
const db = queryInterface.sequelize;
await db.query('start transaction;');
await queryInterface.sequelize.query(`UPDATE users SET "homeMarket" = ("identity" -> 'area'
-> 'id')::int`);
await queryInterface.sequelize.query(`UPDATE users SET "homeMarketName" = ("identity"::json
-> 'area' ->> 'name')`);
await db.query('commit;');
},
};
我希望使用 getAddressCoord 函数的响应更新该字段,getAddressCoord 函数接收列中的地址值。
我该怎么做?
在项目中导入并要求尝试。
在迁移文件中重写了所有需要的函数,并进行了函数调用。