【问题标题】:Using Heroku to db:pull a new database使用 Heroku 来 db:pull 一个新的数据库
【发布时间】:2011-07-07 17:52:51
【问题描述】:

我正在尝试学习如何使用 Heroku 的系统推送和拉取数据库,我只是有一个澄清问题。

我现有的开发数据库名为project_dev,但我想创建一个新数据库。我输入了以下命令:

heroku db:pull mysql://root:mydbpassword@localhost/20110302heroku

我有一个包含我的开发、测试和生产数据库的 database.yml 文件,我从 Heroku 收到了以下回复:

Auto-detected local database: mysql://root:mydbpassword@localhost/project_dev?encoding=utf8

这是否意味着如果我想从 Heroku 中提取数据,我必须先手动创建一个新数据库?这是否意味着除非在我的 database.yml 文件中明确定义 db,否则我根本无法拉取?

任何指针都会很有帮助。我浏览了 Google、Heroku 和 SO,但没有找到我想要的答案。谢谢!

【问题讨论】:

    标签: ruby-on-rails database ruby-on-rails-3 heroku pull


    【解决方案1】:

    是的,您必须先创建新的本地数据库,但不必在 database.yml 文件中声明它。

    当我运行heroku db:pull mysql://root:mydbpassword@localhost/newdb 时,它会正确导入newdb 数据库。我不确定为什么它会自动检测您的本地开发数据库。你使用最新的 heroku 和 taps gems 吗?

    【讨论】:

    • 我还没有创建数据库 20110302heroku。也许 taps 没有找到我指定的数据库,所以它然后将 database.yml 作为备份源?我会先尝试创建数据库,看看是否能解决问题。
    • @sscirrus:使用水龙头 0.3.17 和 heroku 1.18.0,当我运行“heroku db:pull”时,它首先显示“警告:数据库中的数据 'mysql://root:mydbpassword@ localhost/newdb' 将被覆盖且无法恢复。”然后要求确认,如果数据库不存在则中止。您使用哪个版本的 taps 和 heroku?
    • 我刚刚更新到 taps 0.3.17 和 heroku 1.18.2。我还创建了一个名为20110303heroku 的新本地数据库并尝试了heroku db:pull mysql://root:mydbpassword@localhost/20110303heroku,但它仍然默认为我的另一个数据库:project_dev。假设我总是想影响 project_dev,我该怎么做才能让它停止?
    • @sscirrus: 很抱歉,我不知道为什么它对你来说是这样的 :( 可能值得联系 Heroku 支持或在 Heroku gem 问题跟踪器中填写一张票:@987654321 @如果您有解决方案,请告诉我们
    • 感谢您的帮助,我的朋友。 +1 的努力。
    猜你喜欢
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    相关资源
    最近更新 更多