2012-01-19 187 views
1

對於背景,我試圖將我的sqlite3本地數據庫遷移到Heroku上的postgresql數據庫。sqlite3 - 無法打開數據庫文件

我沒有問題通過我的(Django)開發服務器本地訪問數據庫。但是,當我嘗試將db推到Heroku時,它說它無法打開文件。

heroku db:push sqlite://path/to/db --confirm my-app-name 

我得到以下信息:

Loaded Taps v0.3.23 
Warning: Data in the app 'my-app-name' will be overwritten and will not be recoverable. 
Failed to connect to database: 
     Sequel::DatabaseConnectionError -> SQLite3::CantOpenException: could not open database: unable to open database file 

我已經看到了谷歌的大多數都涉及到在早期版本的點擊的一些錯誤。否則,我不知道我應該在這裏做什麼。

我試過了關於this question和其他人關於權限的建議,但是我對文件和文件夾有完整的讀寫訪問權限。我對權限不太熟悉 - 我是否需要將數據庫的所有權切換到其他用戶?

回答

0

我會嘗試通過dumpdata將數據從sqlite3保存到fixture,然後切換到postgres後,通過loaddata再次加載它。

+0

愛這個想法,但我得到這個:'錯誤:無法序列化數據庫:' – tchaymore

+0

在這一點上,使用dumpdata上的--traceback標誌。看來,沒有找到外鍵。 – Martin

1

如果/路徑/到/數據庫是一個絕對路徑,你需要做的:

heroku db:push sqlite:///path/to/db --confirm my-app-name 

注意的第三個斜槓。它也可能是權限問題,在這種情況下,您希望將所有者更改爲當前用戶,或者至少爲數據庫授予讀取權限(644)。

相關問題