我正在寻找一种有效的方法来获取原始 sql 文件并让它针对 postgres 数据库同步执行,类似于你通过psql
.
我有一个创建所有数据库、导入数据等的 sql 文件。我需要使用 node.js 执行此操作,但找不到任何自动执行此操作的模块。对于 node.js 应用程序本身,我们使用 node-postgres ('pg')、knex.js 和 bookshelf.js。我认为虽然 pg 最适合这个。
我能想到的另一种选择是读取完整文件,用分号拆分,用空格替换换行符,修剪任何重复的空格,然后以按顺序执行而不是异步执行的方式将其逐个输入 pg。如果这确实是最有效的方法,并且如果还没有库可以解决这个问题,我会感到有点惊讶。我有点犹豫要不要跳进去,因为 SQL 语法本身可能有点挑战性,我可能会不小心把它混在一起。
提前说明几点:
psql
无法使用,因为它没有安装在目标机器上- 我选择以 sql 原生形式开发和源代码控制 sql 语句,因为 DBA 使用和操作它要容易得多