繁体   English   中英

如何从 sql 文件运行 typeorm mysql 命令?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM