2012-09-25 84 views
1

嘗試通過分流404錯誤在Heroku DB:推

到我的數據庫推到Heroku的
([email protected][app_name]_db) heroku db:push --app [app_name] 
Loaded Taps v0.3.24 
Auto-detected local database: sqlite://db/development.sqlite3 
Warning: Data in the app '[app-name]' will be overwritten and will not be recoverable. 

! WARNING: Destructive Action 
! This command will affect the app: [app-name] 
! To proceed, type "[app-name]" or re-run this command with --confirm [app-name] 

> [app-name] 
Sending schema 
Schema:   0% |           | ETA: --:--:-- 
Saving session to push_201209251425.dat.. 
!!! Caught Server Exception 
HTTP CODE: 404 

的分貝時,我得到一個404錯誤:用來做工精細推命令,然後我做了一些改變,以我的數據庫,方法是回滾遷移,編輯它們,然後重新遷移。現在我可以部署應用程序,但數據庫不會推送 - 我不知道這是否與編輯遷移有關。

該應用程序在我的機器上正常工作,我想消除Heroku的副本和我自己的副本之間的任何差異,所以我創建了一個新應用程序並推送到該應用程序。同樣的事情:Heroku應用程序的作品,但不會收到db:push;它與上面相同的404錯誤。

這是一個Heroku服務暫時下降,或者改變我的應用程序導致404?

編輯:Heroku的日誌不顯示任何錯誤消息

回答

1

Heroku的支持時間太長迴應,所以我發現我的EC2實例,直接使用水龍頭寶石通信的解決方法。

  1. 轉到您的數據庫的Heroku儀表板。對我來說,這是在

    https://postgres.heroku.com/databases/[my-database-name]

    雖然我航行通過擴展中心去。

  2. 點擊在 '連接設置' '網址',應該給你類似

    Postgres的:// [用戶名]:[密碼] @ ec2- [ip_address_numbers] .compute-1.amazonaws.com :[端口]/[數據庫名稱]

    拷貝值的時候,我會在這裏引用它作爲[EC2_URL]

  3. 得到1.9.2安裝寶石水龍頭,如果你不已經擁有了它(不當然如果1.9.3會工作,沒有測試它)

  4. 設置本地主機水龍頭服務器在終端運行,以方便交易:

    水龍頭服務器的Postgres:// [local_machine_username] @本地/ [name_from_database.yml] [some_username] [some_password]

    (注意空格前用戶名和密碼)

  5. 然後你就可以通過另一個終端窗口處理自己的事務:

    水龍頭拉[EC2_URL] HTTP:// [some_username]:[some_password] @localhost:5000

它應該運行並將所有數據從本地開發數據庫提取到Amazon實例。你也可以做反之亦然,或者選擇一個不同的數據庫等。或者不,我不是警察。

0

heroku db命令和ruby 1.9.2有一些問題(我有這個版本)。
DB:拉結尾
DB「無法從獲取表的信息」:一推結束「!抓到服務器異常HTTP代碼:404」

有一個變通針對此問題。切換到紅寶石1.8.7(我正在使用rvm)暫時只是爲了在heroku上完成數據庫操作,並在完成後切換回紅寶石。

+0

有趣的你應該這樣說。我使用1.9.3,而我原來的解決方法是使用1.9.2!我將上面的命令保存在文本文件中,以便Heroku的db:push再次脫機時,可以快速進行部署,而無需太多故障排除。 – tyler

0

我做同樣的過程(有Heroku轉換我的SQLite數據庫到Postgres),我昨天也得到這個問題。它似乎現在工作,所以我相信這是Heroku的問題。