如何在 Ubuntu 的 Vagrant 实例上将 SQL 转储导入 Postgres DB 运行

How to import SQL dump into Postgres DB running on Vagrant instance of Ubuntu

我正在通过一个 vagrant 实例使用 Postgres 运行 ubuntu-xenial-16.04-cloudimg 框,我有一个来自另一个开发人员的 sql 转储。

顺便说一下,在我连接到 Virtualbox 上的 Postgres 服务器后,我尝试从我的 Win 10 主机使用 PGAdmin IV (ubuntu),但它需要永远而不是 运行。

如何将其导入 Virtualbox 实例上的 Postgres 运行?

根据转储的格式(正常或自定义),您可以使用 psqlpg_restore。 检查 pg_dump

文档中的 --format 选项

因此给定一个 sql 转储文件作为 dump.sql

  1. 运行 vagrant ssh 在 ssh 客户端上 git bash(for windows)
  2. 将转储文件放在主机上包含 vagrantfile 的目录中。因为它 syncs 默认情况下与 guest 机器或 运行 vagrant rsync,只是为了确保。
  3. 导航到主机上的 vagrant 目录(例如 cd ../../ 对于 window 主机上的 ubuntu 来宾)
  4. 运行 psql -h hostname -U test -d databasename -f dump.sql.

按照以下简单步骤解决了我的问题:

  1. vagrant up后,vagrant ssh登录os
  2. 输入psql命令
  3. 然后create database your_db_name创建空数据库
  4. 确保转储 sql 文件位于包含 vagrantfile 的文件夹中(cd vagrant)或
  5. 中的子文件夹
  6. 编写此命令将转储文件导入新创建的数据库
    your_db_name -f /path/to/the/dump.sql

希望这些步骤对你也有帮助。