使用PostgreSQL的PgAdmin-III导出数据库

使用PostgreSQL的PgAdmin-III导出数据库,第1张

概述如何将 Postgresql数据库导出到可以执行到其他pgAdmin的SQL中? >导出为备份文件,在版本不同时不起作用 >导出为SQL文件,尝试在不同的pgAdmin上运行时不会执行 我尝试使用pgAdmin III导出数据库,但是当我尝试在其他pgAdmin中执行SQL时,它会在SQL中抛出错误,当我尝试“恢复”备份文件时,它说它的版本不同,它不能做导入/恢复. 那么有一种“安全”的方法将数据 如何将 Postgresql数据库导出到可以执行到其他pgadmin的sql中?

>导出为备份文件,在版本不同时不起作用
>导出为sql文件,尝试在不同的pgadmin上运行时不会执行

我尝试使用pgadmin III导出数据库,但是当我尝试在其他pgadmin中执行sql时,它会在sql中抛出错误,当我尝试“恢复”备份文件时,它说它的版本不同,它不能做导入/恢复.

那么有一种“安全”的方法将数据库导出到标准sql中,可以在pgadmin sql编辑器中清楚地执行,无论它是哪个版本?

不要试图使用Pgadmin-III.如果可能,直接使用pg_dump和pg_restore.

使用目标服务器中的pg_dump版本转储源服务器.因此,如果您从(例如)8.4到9.2,则使用9.2的pg_dump来创建转储.如果创建-Fc自定义格式转储(推荐),则可以使用pg_restore将其应用于新数据库服务器.如果您进行了常规sql转储,则可以将其应用于psql.

见the manual on upgrading your PostgreSQL cluster.

现在,如果你想降级,这是一个完全不同的混乱.

你将很难创建一个可以在任何版本的Postgresql中使用的sql转储.假设您创建了一个使用WITH查询的VIEW.这在恢复到Postgresql 8.3时不起作用,因为它不支持WITH.还有很多其他的例子.如果您必须支持旧的Postgresql版本,请在您仍然支持的最旧版本上进行开发,然后导出它的转储以便加载更新的版本.您无法在新版本上进行合理开发并导出旧版本,如果有的话,它将无法正常工作.

更麻烦的是,在旧版本上开发并不总能为您提供适用于新版本的代码.有时会添加新关键字,以引入对新规范功能的支持.有时,问题会以影响用户代码的方式得到修复.例如,如果你要在(古老的和不受支持的)8.2上进行开发,那么在8.3及以上的文本中隐式转换为文本会有很多问题.

您最好的选择是测试所有支持的版本.考虑使用Jenkins CI等设置自动化测试.是的,这是一个痛苦,但它是软件的价格随着时间的推移而改善.如果Pg保持完美的向后和向前兼容性,它永远不会改进.

总结

以上是内存溢出为你收集整理的使用PostgreSQL的PgAdmin-III导出数据库全部内容,希望文章能够帮你解决使用PostgreSQL的PgAdmin-III导出数据库所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1170154.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-02
下一篇2022-06-02

发表评论

登录后才能评论

评论列表(0条)

    保存