执行mysql转储文件,在nodejs项目中创建表并馈送数据

执行mysql转储文件,在nodejs项目中创建表并馈送数据,mysql,node.js,Mysql,Node.js,我正在从事nodejs项目。我有以下mysql转储文件。与其继续手动创建该表并使用mysql查询手动提供数据,不如执行以下转储文件,该文件将创建该表并在该表中提供/插入数据如何使用命令执行此操作? CREATE TABLE employees ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(50), location varchar(50), PRIMARY KEY (id) ) ENGINE=Inno

我正在从事nodejs项目。我有以下mysql转储文件。与其继续手动创建该表并使用mysql查询手动提供数据,不如执行以下转储文件,该文件将创建该表并在该表中提供/插入数据如何使用命令执行此操作?

  CREATE TABLE employees (
    id int(11) NOT NULL AUTO_INCREMENT,
    name varchar(50),
    location varchar(50),
    PRIMARY KEY (id)
  ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

  INSERT INTO employees (id, name, location) VALUES
  (1, 'Jasmine', 'Australia'),
  (2, 'Jay', 'India'),
  (3, 'Jim', 'Germany'),
  (4, 'Lesley', 'Scotland');
更新

我希望在节点js中有类似的东西,比如下面的RubyonRails


或者在Laravel is中,运行SQL脚本的方法是打开一个进程,以SQL脚本作为输入执行
mysql
命令行客户端

有些人试图拆分SQL文件,并一次运行一条语句。但这通常不起作用。转储文件中有一些语句(例如,
分隔符
)无法在服务器上运行,因为它们是用于
mysql
客户端的内置命令

下面是一个过去的堆栈溢出问题,它显示了如何使用
child\u进程
生成
mysql
客户端:


    • 您可以使用的工具是,但我不知道这是否是出于您的目的而过度使用的工具。通常,它用于管理数据库迁移,但您似乎可以转储sql文件并执行它们。在这里你可以找到你的名字。以下是步骤:

      npm install db-migrate --save
      npm install db-migrate-mysql --save
      mkdir migrations
      
      之后,您必须创建一个配置文件来管理不同环境中的数据库连接(模块将查找的默认名称是
      database.json
      )。应该是这样的:

      {
        "dev": {
          "host": "localhost",
          "database": "your_db",
          "driver": "mysql",
          "user": "db_user",
          "password": "your_pass"
        },
        "prod": {
          "host": "localhost",
          "database": "your_db",
          "driver": "mysql",
          "user": "db_user",
          "password": "your_pass"
        }
      }
      
      之后,您必须创建迁移文件:

      node_modules/.bin/db-migrate create employees-seed --sql-file
      
      上面的命令将创建以下文件:

      migrations/20161026123242-employees.js
      migrations/sqls/20161026123242-employees-up.sql
      migrations/sqls/20161026123242-employees-down.sql
      
      您只需要将sql命令转储到sql文件中,然后像这样运行迁移。(可能需要将mysql命令拆分为不同的迁移文件):


      您可以在node中将转储文件读入一个大字符串,并在一个命令中使用mysql驱动程序运行它。驱动程序应该能够处理它。

      似乎已经有一个NPM模块可以与MySql集成


      检查一下

      您是想一次性执行还是需要一些东西来管理数据库更改?我只需要执行该文件,该文件将创建表并插入数据。仅此而已。您是否正在寻找将mysql数据转储转换为node.js种子代码的脚本?不,我想将数据提供给mysql表/数据库。
      node_modules/.bin/db-migrate up