【问题标题】:Heroku db:push problemsHeroku db:推送问题
【发布时间】:2012-06-20 19:19:27
【问题描述】:

我正在尝试将我的本地 Postgres 数据库推送到我的 Heroku 应用程序,并按照 Heroku 指南,我做了 heroku db:push 但我收到以下错误:

leonsas@leonsas-VirtualBox:~$ heroku db:push
 !    Taps Load Error: cannot load such file -- sqlite3
 !    You may need to install or update the taps gem to use db commands.
 !    On most systems this will be:
 !    
 !    sudo gem install taps

我已经尝试过sudo gem install tapssudo gem install sqlite3,但我无法让它工作。任何想法为什么在我使用 postgres 时尝试加载 sqlite3 db?

【问题讨论】:

    标签: heroku gem


    【解决方案1】:

    在 postgres 实例之间迁移数据时,不再推荐使用 Taps 工具。请改用heroku-pg-transfer

    这仅在您使用production databases 或新的Heroku postgres dev plan 之一时有效。如果您仍在使用旧的共享数据库计划,我建议您切换到新的开发计划。

    首先,在 Heroku 上找到您的数据库的 URL:

    $ heroku config:get DATABASE_URL
    postgres://yada:yada@ec2-107-21-122-141.compute-1.amazonaws.com:5432/123
    

    然后从本地数据库转移到 Heroku 数据库:

    $ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
    $ heroku pg:transfer -f postgres://localhost/dbname -t postgres://yada:yada@ec2.../123
    

    由于 heroku-pg-transfer 工具利用了 postgres 的原生 pg_dump 工具,因此它是一个更具可预测性和弹性的工具。

    【讨论】:

    • 这似乎可行,但无法连接到heroku的数据库。:pg_restore:[archiver(db)]连接到数据库“hdciwacofe”失败:无法连接到服务器:连接超时out 服务器是否在主机“ec2-107-22-235-197.compute-1.amazonaws.com”(107.22.235.197)上运行并接受端口 5432 上的 TCP/IP 连接? pg_restore: *** 因为错误而中止
    • 你知道你用的是什么数据库吗?如果您在运行“heroku config”时看到 SHARED_DATABASE_URL,那么您这样做了,但这是行不通的。您必须迁移到 Heroku 开发计划。
    • 这行得通,但不是很有禅意。如果命令被缩短或 'db:push' 被修复会很好。
    猜你喜欢
    • 2011-11-15
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    相关资源
    最近更新 更多