2012-09-25 83 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的问题。