我怎麼知道,我可以放心地在生產系統升級Boost Serialization Library不中斷與現有數據的兼容性?是否有任何測試應該執行,以確保新版本庫的二進制格式存儲的所有數據都能被新版本成功讀取? Boost Serialization庫本身是否保證版本之間的某種兼容性?升壓串行化庫升級
Q
升壓串行化庫升級
9
A
回答
1
初始版本是在升壓1.32。 看樣子你可以查看發佈以來的歷史那麼在這裏: 比我建議你問boost郵件列表上http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/release.html
9
Boost.serialization是向後兼容的,但is not guaranteed to be forwards compatible。
這意味着:
- 你可以boost.serialization的舊版本,可以用較新的版本可以讀取創建存檔。
- 無法保證使用較新版本的boost.serialization創建的檔案可以被舊版本讀取。
例如,如果在兩個方向上在客戶端和服務器之間發送消息,則可能必須以鎖步方式升級boost版本。
的「有線格式」不改變每版本提振。因此,在兩個特定版本的boost之間,您可能沒有任何問題 - 我無法找到在哪個版本的boost中使用哪種版本的存檔格式的具體文檔。
還要注意保持向後兼容性「保證」,這只是表達一種意圖 - 雖然我想你可以拿回自己的錢;-)。 Boost版本1.42和1.43有一個錯誤,這意味着後來的版本無法讀取它們 - see the 1.45 release notes。
1
您可以使用當前版本的軟件創建測試文件,並將其儲存。然後將這些文件加載到自動測試中。
不幸的是,即使你的代碼將通過這個測試,你不能100%肯定的兼容性,因爲還有可能是某種無法加載序列化的內容。那麼,它總比沒有好。
此測試將自動僅覆蓋向後兼容性。測試向前(向上)兼容性會更加複雜。一個需要爲每一個新版本創建的測試數據,並嘗試通過每一箇舊版本加載它...升壓
向前延伸兼容性::序列化是answered here
相關問題
- 1. 序列化stdext ::使用的hash_map升壓串行化庫
- 2. 升壓MPL串
- 3. 問題與升級升壓在Ubuntu 12.04
- 4. Ubuntu:C++ :: Boost庫升級
- 5. 何時升級庫
- 6. 序列化升壓陣列
- 7. 升壓
- 8. 升壓
- 9. 升級還是不升級
- 10. 升級升級版本
- 11. 未能安裝升壓庫
- 12. 升壓預處理器庫
- 13. 帶升壓庫的路徑
- 14. 升級的Hibernate 3.1至3.6的performande升壓
- 15. 升壓運行時錯誤
- 16. 在Eclipse中升級AspectJ運行時庫
- 17. 與升壓
- 18. 與升壓蟒
- 19. 用於升壓
- 20. 安裝升壓
- 21. 升壓螺紋
- 22. 升壓過程
- 23. 與升壓
- 24. 從升壓1.37降級到1.34
- 25. 數據庫升級方法
- 26. Symfony共享庫升級
- 27. 升級黑莓數據庫
- 28. Android:升級數據庫
- 29. Soaarqube從3.7.2升級到4.4。數據庫升級期間掛起
- 30. 本地升級到SVN 1.7是否需要升級存儲庫?