我有一個sqlite數據庫的問題。Sqlite3從轉儲文件重新創建空數據庫
首先,我的數據庫崩潰了,無論我試圖用它做什麼,它說:「數據庫磁盤映像格式不正確」。這可能是因爲我寫了大量文本,其中有很多「\ n」表格中的兩列。
所以我在這裏和其他網站上閱讀了幾個主題,我倒數據庫並重新創建它,但它說類似「該行太長(最多1000個字符)」 - 現在我無法重新創建這個錯誤。但奇怪的是,我正在使用sqlite3的3.19.3版本,並且我在另一個線程上閱讀,在以前的版本中,解決了「\ n」字符的問題。
現在我的另一種方法是,我看着轉儲文件,並使用正則表達式來擺脫所有這些文本。現在我的轉儲文件將其大小從750 Mb減少到3,5 Mb。當我試圖從新的轉儲文件和舊的(這個大的文件)重新創建數據庫時,結果是一個空文件。控制檯不會爲我提供任何結果或錯誤。所以下面我發佈我在這個過程中的每一步。
sqlite3> .open testDatabase.sqlite
sqlite3> .mode insert
sqlite3> .output dump.sql
sqlite3> .exit
mv testDatabase.sqlite corruptDatabase.sqlite
sqlite3> .open testDatabase.sqlite
sqlite3> .read dump.sql
OR
*gets rid of huge text values*
sqlite3> .open testDatabase.sqlite
sqlite3> .read small_dump.sql
雙方造成空testDatabase.sqlite文件。正如我之前提到的,沒有錯誤,所以我不知道發生了什麼。
請幫忙,我不知道該怎麼辦。
是否「空文件」是指0字節? –
是的,確切地說。帶有* .journal擴展名的文件在此過程中創建,但隨後會自動刪除。 –
這應該是不可能的,沒有得到一個錯誤信息。 –