【问题标题】:How to automate using a production postgres database backup in local Flask environment如何在本地 Flask 环境中自动使用生产 postgres 数据库备份
【发布时间】:2021-05-07 09:13:31
【问题描述】:

我们的网站使用 Postgres 和 Flask,并且我们经常在本地使用生产数据库转储。为了获得新的转储,我使用远程桌面连接 (RDC) 连接到 pgAdmin,然后再次使用 RDC 从服务器复制 .bak 文件并将其保存在本地。同样,我使用 pdAdmin 的本地实例从备份中恢复数据库状态。

我的经理要求我在每次启动本地 Flask 实例时自动执行此过程以使用生产数据库。我该怎么做?

【问题讨论】:

    标签: postgresql flask flask-sqlalchemy remote-desktop


    【解决方案1】:

    您可以编写一个 shell 脚本,使用 pg_dump 将数据库转储到本地文件,然后使用 pg_restore 从该转储构建一个新的本地数据库。您甚至可以将输出从 pg_dump 传递到 pg_restore... 类似

    pg_dump --host <remote-database-host> --dbname <remote-database-name> --username <remote-username> > pg_restore --host <local-database-host> --username <local-username>
    

    要将您的密码输入pg_dump / pg_restore,您可能需要使用 .pgpass 文件,如下所述:How to pass in password to pg_dump?

    如果您希望在本地启动 Flask 实例时自动发生这种情况,如果设置了 LOCAL_INSTANCE 环境变量或类似的内容,您可以使用 subprocess 调用从初始化代码中调用 shell 脚本

    【讨论】:

    • 谢谢,但我对此还有其他问题。我试图从 sh 导入 pg_dump,但我知道 sh 不支持 window.dump。那么你有没有关于子流程的文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2023-02-23
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 2013-09-27
    相关资源
    最近更新 更多