我們似乎在我們的perl腳本和我們的PHP腳本之間在BerkeleyDB中遇到了版本不兼容問題。我們的Perl腳本生成BDB,而我們的PHP腳本只是讀取它們。如何在使用perl DB_File創建文件時指定BerkeleyDB的版本?
我們的Perl腳本使用DB_File創建一個BDB文件:
use DB_File;
$DBFILE="output.db";
tie(%db, "DB_File", $DBFILE, O_RDWR | O_CREAT, 0644)
or warning("Could not open db file '$DBFILE'");
此之前創建的文件的類型:
$ file output.db
output.db: Berkeley DB (Hash, version 9, native byte-order)
但是,安裝sys-libs/db和DB_File的升級後,現在創建一個類型的文件:
$ file output.db
output.db: Berkeley DB (Hash, version 10, native byte-order)
在另一個系統中我們有一個PHP腳本。當升級發生,我們的PHP代碼(基於dba_open())開始抱怨版本:
Notice: dba_open(): output.db: unsupported hash version: 10 in dbread.php on line 16
我曾嘗試升級PHP,但10版好像沒有尚不支持。
有沒有辦法告訴perl的DB_File創建數據庫時創建一個特定的版本?
文件有多大?您能否從目標系統上的文本輸入生成「正確的」Berkeley DB版本? – AnFi