2011-07-19 121 views
1

我一直試圖讓Django在Mac服務器上由mod_wsgi提供服務。我知道Django可以連接到數據庫(因爲我可以將權限從只讀切換到讀/寫,並看到錯誤消息更改),但我得到一個錯誤無法連接到數據庫。我在服務器上使用SQLite v 3.6.12。顯示錯誤頁面中報告導致錯誤的SQL。唯一的例外位置/Library/Python/2.6/site-packages/django/db/backends/sqlite3/base.py在執行時,線路234Django管理員不喜歡SQL插入

的是,在回溯過去的來電顯示出來的錯誤是

cursor <django.db.backends.util.CursorDebugWrapper object at 0x102c16a50> 
self <django.db.models.sql.compiler.SQLInsertCompiler object at 0x102c16910> 
params ('d59df55372475754aa91299d0c5662b6','NmNlOThlYTVjYTIwYWZjZDgwMzFiMTMxZThjZmRhYzg3NDQ3MzcwYzqAAn1xAVUKdGVzdGNvb2tp\nZXECVQZ3b3JrZWRxA3Mu\n',u'2011-08-02 18:25:48.426508') 
result_type None 
sql 'INSERT INTO "django_session" ("session_key", "session_data", "expire_date") VALUES (%s, %s, %s)' 

與錯誤OperationalError(「無法打開數據庫文件」)

如何去調試呢?

+0

那麼在切換權限時,您會得到哪兩種類型的錯誤?你現在有文件處於可寫模式嗎?請記住,服務器可能會使用一些特定的用戶進行操作。像Linux下的'www-data',不知道mac用什麼。 – julkiewicz

+0

只是爲了確定我正確識別了我只讀的文件。該錯誤然後試圖寫入只讀文件。當我將它設置爲讀寫的所有人時,錯誤無法連接。 Django嘗試插入時發生錯誤。 – kd4ttc

回答

4

對於SQLite數據庫,數據庫文件及其所包含的目錄必須是可寫的,以便用戶嘗試使用它。

+0

+1我也觀察到了。 – julkiewicz

+0

你以前做過這件事,不是嗎?我不得不說,這是最令人驚歎的網站。我有一個問題,真的不知道要問什麼問題。我彈出一些調試輸出,我希望是相關的,並表明我已經做了一些分析。向上彈出這個指向它的一行答案,並在幾個小時內顯示出來。驚人! – kd4ttc

+0

格雷厄姆第一次得到它,julkiewicz得到榮譽提及。原因是SQLite在目錄中寫入一個臨時文件來處理回滾和提交。一旦格雷厄姆提到這一點,我完全理解發生了什麼。通過修復權限確認答案正確無誤。謝謝!!! – kd4ttc