我的問題:如何在一個文件中存儲一小段信息而不會弄亂它的內容?
如何將自己的軟件的最新版本存儲在PostgreSQL所生成的轉儲文件?
原因我的問題:
我已經開發使用PostgreSQL數據庫的JAVA軟件。該軟件本地安裝在每個用戶的計算機上,並且數據庫也是每個用戶的本地和個人數據庫。
我創建了一個功能,以便用戶可以備份他們的數據庫並恢復它們。爲此,我的JAVA代碼運行pg_dump
來生成備份文件,並使用pg_restore
來恢復它。也就是說,備份無非是下面的命令生成的數據庫的轉儲更多:
pg_dump.exe -U myuser -h localhost -p 5432 -Fc -f bkpname.bkp mydb
的問題是,我通常會推出軟件更新。新版本的軟件始終與以前版本的轉儲兼容。但是,舊版本的軟件與新版本生成的轉儲不兼容。
有時候會發生這樣的情況:用戶嘗試在軟件的舊版本中恢復最新版本的轉儲,這是不兼容的。
我希望轉儲文件具有生成該軟件的哪個版本的信息。這樣,我只需顯示一條消息,通知用戶他需要下載最新版本的軟件才能恢復備份。
我想到了下面兩種形式,但我認爲他們是不恰當的:
- 保存軟件的版本轉儲文件名。這將是不好的 因爲用戶可以重命名文件。
- 連接轉儲文件內容的版本。恐怕 轉儲文件可能在 輸入文本或在其中刪除文本 (恢復轉儲之前)的過程中可能會損壞。
有沒有更好的方法將此信息添加到轉儲文件?
我建議創建您自己的備份zip文件,其中包含兩個文件 - 數據庫備份和您的應用程序版本。 –
@viniciussss您可以將應用程序版本作爲註釋轉儲文件的第一行中的註釋 –
@PrashantSaraswat恐怕zip命令有時會生成以後無法解壓縮的損壞文件。我沒有經歷過它。是否有意義?或者它是100%安全的,並且沒有機會使用zip命令生成損壞的文件? – viniciussss