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

如何将SQL转储导入运行在Ubuntu Vagrant实例上的Postgres DB,sql,windows,postgresql,ubuntu,vagrant,Sql,Windows,Postgresql,Ubuntu,Vagrant,我通过运行ubuntu-xenial-16.04-cloudimg-box的vagrant实例使用Postgres,我从另一个开发人员那里得到了一个sql转储 顺便说一句,在我连接到virtualbox(ubuntu)上的Postgres服务器后,我尝试从Win 10主机上使用PGAdmin IV,但这需要很长时间,而且无法运行 如何将其导入virtualbox实例上运行的Postgres?根据转储的格式(普通或自定义),您可以使用psql或pg\u restore。 检查文档中的--forma

我通过运行ubuntu-xenial-16.04-cloudimg-box的vagrant实例使用Postgres,我从另一个开发人员那里得到了一个sql转储

顺便说一句,在我连接到virtualbox(ubuntu)上的Postgres服务器后,我尝试从Win 10主机上使用PGAdmin IV,但这需要很长时间,而且无法运行


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

根据转储的格式(普通或自定义),您可以使用
psql
pg\u restore

检查文档中的
--format
选项,以便将sql转储文件指定为
dump.sql

  • 在类似git bash(适用于windows)的ssh客户端上运行
    vagrant ssh
  • 将转储文件放在主机上包含该文件的目录中。默认情况下,它与来宾计算机一起运行,或者运行
    vagrant rsync
    ,以确保安全
  • 导航到主机上的vagrant目录(例如,对于Windows主机上的ubuntu客户机,
    cd../././
  • 运行
    psql-h hostname-U test-d databasename-f dump.sql

  • 按照下面的简单步骤解决我的问题:
  • vagrant up
    之后,
    vagrant ssh
    登录到操作系统
  • 键入
    psql
    命令
  • 然后
    创建数据库\u db\u name
    来创建空数据库
  • 确保转储sql文件位于包含vagrantfile(cd vagrant)的文件夹或其中的子文件夹中
  • 编写此命令将转储文件导入新创建的数据库
    your_db_name-f/path/to/the/dump.sql


    我希望这些步骤也能对您有所帮助。

    在本地或虚拟机上导入没有太大区别。只需ssh到VM(
    vagrant ssh
    )并运行import命令(
    psql databasename
    )问题是数据库转储驻留在主机中,但pg数据库从无头虚拟机运行,在这种情况下,使用a在主机和guesthanks@Frédérich之间共享转储,使用
    vagrant ssh
    -c
    标志直接运行命令,例如:
    vagrant ssh-c“sudo su-postgres-c'psql-d databasename-a-f dump.sql'
    ,并在该命令中使用
    sudo su-postgres-c
    以postgres用户身份运行命令,当您不想调整用户角色并希望运行某些命令(如COPY^_^