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