Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在web应用中通过Hibernate作为持久层备份PostgreSql数据库_Hibernate_Postgresql - Fatal编程技术网

在web应用中通过Hibernate作为持久层备份PostgreSql数据库

在web应用中通过Hibernate作为持久层备份PostgreSql数据库,hibernate,postgresql,Hibernate,Postgresql,我有一个运行使用PostgreSQL的web应用程序的Tomcat web服务器。组织的所有手动过程都通过web应用程序实现自动化,持久层为Hibernate。我想为用户提供一个备份和恢复选项 备份将以某种方式从数据库获取所有数据/模式(可能不是模式),并将其压缩,然后通过web应用程序发送给用户,以允许他们将备份保存在本地计算机上。然后,他们可以选择此备份文件将数据库恢复到备份时的状态 我们正在使用Tomcat容器,Spring+Hibernate和PostgreSql 如何做到这一点?我见过

我有一个运行使用PostgreSQL的web应用程序的Tomcat web服务器。组织的所有手动过程都通过web应用程序实现自动化,持久层为Hibernate。我想为用户提供一个备份和恢复选项

备份将以某种方式从数据库获取所有数据/模式(可能不是模式),并将其压缩,然后通过web应用程序发送给用户,以允许他们将备份保存在本地计算机上。然后,他们可以选择此备份文件将数据库恢复到备份时的状态

我们正在使用Tomcat容器,Spring+Hibernate和PostgreSql


如何做到这一点?

我见过有人将自定义备份例程放在一起。我真的,真的不推荐。当事情出错时,他们往往会犯下可怕的错误

您最好的选择是使用经过良好测试的工具,这些工具是其他人的代码。IMO的最佳选择是调用shell escape并运行pg_dump。这为您提供了相当多的灵活性和比您自己更强大的健壮性。然后打开文件,并将其发送到客户端。这就是我们用自己的持久层和Perl来处理LedgerSMB的方法,但在任何其他系统上都应该差不多


备份很重要。确保备份内部一致性的主代码最好不要保存在内部。

我见过有人编写自定义备份例程。我真的,真的不推荐。当事情出错时,他们往往会犯下可怕的错误

您最好的选择是使用经过良好测试的工具,这些工具是其他人的代码。IMO的最佳选择是调用shell escape并运行pg_dump。这为您提供了相当多的灵活性和比您自己更强大的健壮性。然后打开文件,并将其发送到客户端。这就是我们用自己的持久层和Perl来处理LedgerSMB的方法,但在任何其他系统上都应该差不多


备份很重要。确保备份内部一致性的主代码最好不要保存在内部。

我会尝试组合
pg_dump--data only--clean
,然后获取脚本的输出。我会尝试组合
pg_dump--data only--clean
,然后获取脚本的输出。