[英]How to run typeorm mysql commands from sql file?
我想在从 sql 文件迁移时运行 mysql 命令。 有人可以帮助我,如何解决?
import {MigrationInterface, QueryRunner} from "typeorm";
import * as fs from "fs";
var queries = fs.readFileSync(__dirname + '/geoinfo.sql').toString()
.replace(/(\r\n|\n|\r)/gm," ") // remove newlines
.replace(/\s+/g, ' '); // excess white space
export class HungarianStatesAndCities1564393283405 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<any> {
await queryRunner.query(queries.toString() );
}
public async down(queryRunner: QueryRunner): Promise<any> {
await queryRunner.query("");
}
}
您可以通过 ';' 使用拆分查询并运行单独的查询
const readSqlFile = (filepath: string): string[] => {
return fs
.readFileSync(path.join(__dirname, filepath))
.toString()
.replace(/\r?\n|\r/g, '')
.split(';')
.filter((query) => query?.length);
};
public async up(queryRunner: QueryRunner): Promise<void> {
const queries = readSqlFile('/geoinfo.sql');
for (let i = 0; i < queries.length; i++) {
await queryRunner.query(queries[i]);
}
}
在 npm 中封装到库中。 现在您可以轻松地将它包含在您的项目中。 https://www.npmjs.com/package/node-sql-reader
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.