【发布时间】:2014-05-03 09:39:47
【问题描述】:
我正在寻找一种有效的方法来获取原始 sql 文件并使其与 postgres 数据库同步执行,类似于通过 psql 运行它。
我有一个创建所有数据库、导入数据等的 sql 文件。我需要使用 node.js 执行此操作,但找不到任何自动执行此操作的模块。对于 node.js 应用程序本身,我们使用 node-postgres ('pg')、knex.js 和 bookshelf.js。我认为 pg 最适合这个。
我能想到的另一种选择是读取完整文件,用分号分隔,用空格替换换行符,修剪任何重复的空格,然后以顺序执行的方式将其逐个输入 pg,而不是异步。如果这确实是最有效的方法,而且如果还没有库可以解决这个问题,我会感到有点惊讶。我有点犹豫要不要跳进去,因为 SQL 语法本身可能有点挑战性,我可能会不小心把它混在一起。
提前说明一下:
-
psql无法使用,因为它没有安装在目标机器上 - 我选择以 sql 原生形式开发和源代码控制 sql 语句,因为 DBA 更容易使用和操作它
【问题讨论】:
-
这比您最初想象的要难,因为您需要在 SQL 中区分文字和关键字。举个简单的例子,用分号分割不能与
insert into table values(';');一起使用
标签: javascript sql node.js postgresql node-postgres