将 heroku postgres db 复制到本地 sqlite db

Don*_*n P 4 sqlite postgresql heroku

我想将我的 heroku 生产数据库(postgres)复制到我的开发(sqlite)。

将 postgres db 复制到另一个 postgres db 很容易使用heroku pg:pull。有谁知道如何使用此命令将 postgres 复制到 sqlite 中

pg:pull 上的 Heroku 文档没有说明如何使用不同类型的数据库。这篇旧文章暗示它曾经是可能的。设置本地 postgres db 是我想避免的。

Nic*_*pel 5

您将需要在pg_restore本地执行,然后使用-a仅转储数据的选项转储数据。

它应该是这样的:

  1. 下载数据转储。

    heroku addons:add pgbackups
    heroku pgbackups:capture
    curl -o latest.dump `heroku pgbackups:url`
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建临时数据库。

    sudo -u postgres createdb tempdb
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将转储恢复到临时数据库。

    sudo -u postgres pg_restore --verbose --clean --no-acl --no-owner -h localhost -d tempdb latest.dump
    
    Run Code Online (Sandbox Code Playgroud)
  4. 以正确的格式转储数据。

    sudo -u postgres pg_dump --inserts -a -b tempdb > data.sql
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在 sqlite3 中读取转储。

    sqlite3
    > .read data.sql
    
    Run Code Online (Sandbox Code Playgroud)

这是一个近似解。您很可能需要进行一些小的调整。

我同意Craig Ringer 的观点,即让 postgres 在本地运行可能是值得的。希望这个过程能解决问题!