【问题标题】:Moving/copying one remote database to another remote database将一个远程数据库移动/复制到另一个远程数据库
【发布时间】:2012-09-02 07:56:32
【问题描述】:

我正在使用 heroku 来部署我的应用程序。到目前为止,我一直在使用我的应用程序的开发版本,并将一些数据植入其中。我还在 heroku 上设置了一个生产版本。
这两个应用程序都使用 ClearDB 托管的 mysql 数据库来存储数据。
我只是想将数据从开发版本移动到生产版本。
使用 MySql Workbench,我将开发数据导出到文件并尝试将其导入产品数据库,但我收到拒绝访问错误,因为它尝试使用生产凭据登录开发数据库。
数据库具有相同的表/行/列结构。如何从一个中获取数据并将其插入另一个?

【问题讨论】:

    标签: mysql database heroku migrate


    【解决方案1】:

    将 Taps gem 添加到您的 Gemfile:

    gem 'taps'
    

    您应该能够通过以下方式将开发数据提取到本地开发环境:

    heroku db:pull --app your_development_app_name
    

    然后推送到生产环境:

    heroku db:push --app your_production_app_name
    

    这将完全覆盖数据库架构和数据,因此请务必小心。希望有帮助!

    _ryan

    【讨论】:

    • 我没有尝试这个,最终使用了我自己的方式。水龙头宝石有什么作用?
    • Taps 提供了 db:pull 和 db:push heroku 命令。很酷的一点是您不必使用特定于数据库的转储/复制命令。
    • 用于将已部署的数据库与本地数据库同步,反之亦然。非常便利。 rubygems.org/gems/taps
    • 非常酷。您提供的命令不会拉取和推送 Heroku Postgres 数据库,而不是 cleardb/辅助数据库吗?
    • 默认配置使用heroku db。您还可以通过在命令行上指定 URL 将其指向外部数据库。在此处查看示例:rubydoc.info/gems/taps/0.3.24/frames
    【解决方案2】:

    您可以结合使用“mysql”和“mysqldump”命令行 客户端将一个数据库的内容“复制”到另一个。这是一个例子 如何做到这一点:

    mysqldump --single-transaction -u (old_database_username) -p -h (old_database_host) (database_name) | mysql -h (new_host) -u (new_user) -p -D (new_database)
    

    带换行符:

    mysqldump --single-transaction -u (old_database_username) 
    -p -h (old_database_host) (database_name) | mysql -h (new_host)
    -u (new_user) -p -D (new_database)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 2012-11-27
      • 2013-01-04
      相关资源
      最近更新 更多