首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不干扰文件内容的情况下将一小块信息存储在文件中?

如何在不干扰文件内容的情况下将一小块信息存储在文件中?
EN

Stack Overflow用户
提问于 2017-06-12 19:53:48
回答 1查看 86关注 0票数 0

我的问题:

如何将我的软件的当前版本存储在PostgreSQL生成的转储文件中?

:我问题的原因:

我使用PostgreSQL数据库开发了一个JAVA软件。该软件安装在每个用户的计算机上,数据库也是每个用户的本地和个人的。

我创建了一个功能,以便用户可以备份他们的数据库并恢复它们。为此,我的JAVA代码运行pg_dump生成备份文件,运行pg_restore来恢复备份文件。也就是说,备份不过是以下命令生成的数据库的转储:

代码语言:javascript
复制
pg_dump.exe -U myuser -h localhost -p 5432 -Fc -f bkpname.bkp mydb

问题是我通常会启动软件更新。新版本的软件总是与以前版本的转储兼容。但是,该软件的旧版本与较新版本生成的转储不兼容。

有时,用户试图在软件的旧版本中恢复最近版本的转储,这是不兼容的。

我希望转储文件有生成它的软件版本的信息。通过这种方式,我可以简单地显示一条消息,通知用户他需要下载最新版本的软件才能恢复备份。

--我想到了下面的两种形式,但我认为它们不合适:

  1. 若要将软件版本保存到转储文件名,请执行以下操作。这将是不好的,因为用户可以重命名文件。
  2. 若要连接转储文件内容中的版本,请执行以下操作。我担心转储文件在输入文本的过程中或在删除文本的过程中(在恢复转储之前)可能会被破坏。

是否有更好的方法将此信息添加到转储文件中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-13 08:30:35

一种方法是将信息存储在数据库中的一个特殊表中。

该表不正常使用,在执行转储之前将正确的版本写入其中。

在还原整个转储之前,首先只还原该表:

代码语言:javascript
复制
pg_restore --table dump_version -d mydatabase dumpfile.dmp

然后,您检查表中的内容并进行相应的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44507674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档