【问题标题】:How to create an sql dump file of a Postgres database using psql如何使用 psql 创建 Postgres 数据库的 sql 转储文件
【发布时间】:2022-07-15 14:53:32
【问题描述】:

我目前通过 Supabase 创建了一个数据库,它使用 Postgres 数据库。完成后,我在我的计算机上下载了 Postgres,它为我提供了 psql 命令行脚本,用于连接到 postgres 数据库。

我打算通过 psql 脚本为我的 Supabase 数据库创建一个本地备份。 这是在我通过 psql 连接到 supbase 数据库之后

由此可以看出psql已经成功连接到数据库了。

然后我尝试使用 pg_dump 命令尝试创建数据库的转储文件。 这是我使用的命令:

pg_dump postgresql://postgres:[数据库密码]@db.epvzhrganrzfwexmiksg.supabase.co:5432/postgres > dumpfile.sql

然而,当我按下回车后,psql 并没有运行命令,它只是移动到一个新的命令行。因此,我不确定我是否为转储命令输入了错误信息,还是我需要使用不同的 psql 命令。

【问题讨论】:

  • 没有错。您只需要在 pg_dump 命令行中添加一个额外的“-v”即可在您的 cmd 中显示输出信息。
  • pg_dump 是它自己的命令行命令,你不能在psql 中运行它。令人惊讶的是,文档Postgres client programs 对此进行了介绍。

标签: database postgresql dump pg-dump supabase


【解决方案1】:

正如@adrian-klaver 所说,pg_dump 命令应该直接从终端运行,而不是从 psql shell 内部运行

运行pg_dump -V 以检查它是否已安装。一般是安装psql的时候安装的https://stackoverflow.com/a/49689589/1267728

【讨论】:

    【解决方案2】:

    如前所述,您已成功连接 psql。

    • 如果您有操作系统提示访问权限,以下是进行普通 .sql 备份的步骤。

    从操作系统提示符

    $ pg_dump mydb > mydb.sql
    

    从 psql 提示符

    postgres# \! pg_dump mydb > mydb.sql
    

    备份完成后,可以通过 psql 将 mydb.sql 文件复制并导入到本地机器。

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 2017-08-08
      • 1970-01-01
      • 2022-01-15
      • 2011-05-26
      • 2014-02-24
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多