【问题标题】:Transfer initial PostgreSQL database from development to Heroku production将初始 PostgreSQL 数据库从开发转移到 Heroku 生产
【发布时间】:2011-10-14 08:29:04
【问题描述】:

我有一组本地存储在开发数据库中的初始生产数据,我希望将其迁移到生产中作为数据的起点。传输这些数据的最佳方式是什么?

是否有办法按照说明使用pgbackups 似乎并不明显。也许我必须在本地运行某种手动备份,然后使用pgbackups 将其推送过来,如果是这种情况,我将不胜感激有关完成此操作的一些具体说明。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 postgresql heroku


    【解决方案1】:

    经过一些额外的挖掘和 Heroku 的回答,导入初始数据的答案是:

    1)如果在本地使用PGSQL,先dump数据:

    pg_dump -U your_username your_database_name -f backup.sql

    2) 然后按照此处的说明导入 Heroku 的数据库: http://devcenter.heroku.com/articles/pgbackups#importing_from_a_backup

    【讨论】:

    • 对。我试过了,但它告诉我必须等一天。 :) 不知道为什么人们对我的问题投了反对票。大声笑感谢您的意见。
    • 感谢您的帮助。对我来说似乎很奇怪,因为我认为它很清楚:“我有一组初始生产数据存储在本地开发数据库中,我想将其迁移到生产中作为数据的起点。”我不知道它如何更清楚。那好吧! :)
    【解决方案2】:

    首先使用pg_dump转储您的本地数据库:

    pg_dump -Fc --no-acl --no-owner -h ... mydb > mydb.dump
    

    然后使用heroku pgbackups:restore:

    heroku pgbackups:restore heroku-database-url url-to-your-mydb.dump-file
    

    请注意,mydb.dump 文件需要可供 Heroku 服务器访问。

    Heroku 开发中心页面有详细说明:

    https://devcenter.heroku.com/articles/heroku-postgres-import-export

    【讨论】:

    • 明白,但是从我读到的一些内容我认为这是“危险的”。
    • 另外,您是否熟悉在远程 Heroku pgsql 服务器和例如本地服务器之间设置同步复制?
    • @ylluminate: db:push 如果您已经有生产数据但没有任何数据,那么您可能会很危险,因此没有什么可以覆盖或丢失的。我不熟悉 Heroku 的复制。
    • db push 正是为了这个目的。会好的。
    • 我确实有一些生产数据。它是我收集了一段时间的存档数据(数百万行数据)。它并不复杂,特别大的表中不涉及外键/连接,最复杂的数据类型是数字(18,12)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 2014-08-11
    • 1970-01-01
    相关资源
    最近更新 更多