是否可以以基本上模仿单个输出文件的方式使用 Npgsql,pg_dumpall
而不必遍历数据库中的每个表?相反,如果可能的话,我也希望能够获取这样的输出并使用 Npgsql 来恢复整个数据库。
我知道,对于更新版本的Npgsql ,我可以使用BeginBinaryExport
、BeginTextExport
或BeginRawBinaryCopy
方法从数据库导出到 STDOUT 或文件。在流程的另一端,我可以使用BeginBinaryImport
、BeginTextImport
或BeginRawBinaryCopy
方法从 STDIN 或现有文件导入。但是,就我目前所能找到的而言,这些方法使用COPY
SQL 语法,该语法(AFAIK)一次仅限于一个表。
我为什么要问这个问题? 我目前有一个旧的批处理文件,用于将生产数据库导出到文件(使用pg_dumpall.exe
),然后再将其导入我的测试环境(使用psql.exe
操作<
)。这已经工作了很长一段时间了,但我们最近将服务器移动到了异地托管环境,这导致了延迟,导致批处理文件无法成功完成。由于其他连接/超时问题的可能性,我正在考虑将批处理文件的功能移动到 .NET 应用程序,但这部分让我有点难过。
感谢您的帮助,如果您需要任何进一步的说明,请告诉我。