相关疑难解决方法(0)

使用pg_dump只从数据库中的一个表中获取insert语句

我正在寻找一种方法,INSERT使用pg_dumpPostgreSQL 从数据库中的一个特定表中获取所有行作为语句.

例如,我有表A并且表AI中的所有行都需要作为INSERT语句,它还应该将这些语句转储到文件中.

这可能吗?

postgresql

107
推荐指数
3
解决办法
10万
查看次数

从命令行创建数据库

我正在尝试从命令行创建数据库.我的SO是centos,postgres是9.2

sudo -u postgres psql createdb test
Password for user test:
Run Code Online (Sandbox Code Playgroud)

为什么用户问我?

postgresql

64
推荐指数
6
解决办法
10万
查看次数

Bash/Docker exec:从容器内部重定向文件

我无法弄清楚如何从Docker容器中读取文件的内容.我想将SQL文件的内容执行到我的PGSQL容器中.我试过了:

docker exec -it app_pgsql psql --host=127.0.0.1 --username=foo foo < /usr/src/app/migrations/*.sql
Run Code Online (Sandbox Code Playgroud)

我的应用程序已安装/usr/src/app.但是我收到了一个错误:

bash:/usr/src/app/migrations/*.sql:没有这样的文件或目录

似乎Bash将此路径解释为主机路径,而不是客户路径.实际上,两次执行命令非常有效:

docker exec -it app_pgsql
psql --host=127.0.0.1 --username=foo foo < /usr/src/app/migrations/*.sql
Run Code Online (Sandbox Code Playgroud)

我认为这更像是Bash问题而不是Docker问题,但我仍然被卡住了!:)

bash docker

29
推荐指数
2
解决办法
2万
查看次数

Postgresql数据库导出到.sql文件

我想将我的数据库导出为.sql文件.有人能帮我吗?我发现的解决方案不起作用.请详细说明.在Windows 7上.谢谢

postgresql postgresql-9.1

14
推荐指数
3
解决办法
3万
查看次数

Postgres教程:pg_restore:[archiver]输入文件似乎不是有效的存档

我正在研究Postgres DVD教程,并且遇到导入其示例数据库的问题.

跑步pg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tar.gz给了我pg_restore: [archiver] input file does not appear to be a valid archive.

到目前为止,我的流程如下:

  1. 下载dvdrental.zip文件
  2. 使用tar czf dvd-database.tar.gz dvdrental.zip(我也尝试将zip解压缩到一个文件夹,结果相同,并删除.gz)将其解压缩到.tar
  3. pg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tar如上所述运行.

我目前正在使用Postgres 9.5,这可能会导致问题.寻找答案,指出我在这个过程中出错的地方或如何将Postgres数据库的存档更新到9.5.

postgresql tar pg-restore postgresql-9.5

8
推荐指数
1
解决办法
1万
查看次数

PostgreSQL:转储和恢复

我使用EMS SQL Manager for PostgreSQL,我需要转储困难的数据库(域,300多个存储过程/函数,触发器,数据等).这个工具不能这样做.

请为postgres建议好的GUI工具.

postgresql

7
推荐指数
2
解决办法
9143
查看次数

输入是 PostgreSQL 自定义格式转储。使用 pg_restore 命令行客户端将此转储恢复到数据库。

我在尝试将 postgres 转储文件导入 Google Cloud SQL 时遇到以下错误消息。

输入是 PostgreSQL 自定义格式转储。使用 pg_restore 命令行客户端将此转储恢复到数据库。这可能需要几分钟的时间。在此操作运行期间,您可以继续查看有关实例的信息。

请让我知道如何将 postgres 转储文件(托管在 Google Cloud Storage 上)导入到 Google Cloud SQL?

postgresql google-app-engine gcloud

7
推荐指数
1
解决办法
1万
查看次数

如何从Postgres Heroku上的先前备份恢复特定数据?(例如,意外删除的行)

情况如下:使用Heroku和Postgres,您可以自动生成备份转储文件.但你能用它做什么呢?

  1. 如果要完全返回备份状态,请将其转储到数据库中
  2. 将其转储到本地"看看",或在开发环境中使用生产数据
  3. 在先前状态中设置数据库的特定行(例如,恢复意外删除的行)

我发现自己后一点上苦苦挣扎,我想分享我是如何做到的.

如何从Postgres Heroku上的先前备份恢复特定数据?

postgresql heroku ngrok

6
推荐指数
1
解决办法
2494
查看次数

为什么pg_restore返回"选项-d/ - dbname和-f/ - 文件不能一起使用"?

以下Windows批处理脚本在数据库还原的行上失败:

@Echo off

set Path=C:\Program Files (x86)
set Backup_Path=C:\Program Files (x86) 

c:  
cd \  
cd C:\Program Files (x86)\PostgreSQL\9.1\bin  

@echo "Wait ..."  
setlocal
set PGPASSWORD=1234
psql.exe -U postgres -c "create database Mydata"  
"C:\Program Files (x86)\PostgreSQL\9.1\bin\pg_restore.exe" -h localhost -U postgres -d Mydata -f "Mydata.backup"

pause 
endlocal
Run Code Online (Sandbox Code Playgroud)

错误是:

pg_restore:-d/ - dbname和-f/ - 文件不能一起使用试试"pg_restore --help"

postgresql batch-file postgresql-9.1 postgresql-9.3

5
推荐指数
1
解决办法
2050
查看次数

两个不同结构的数据库之间的数据迁移(Postgresql)

我有两个数据库,old_db 和 new_db,我想要做的是将数据记录从 old_db 传输到 new-db 但具有不同的结构或不同的列。我正在创建一个sql脚本,它将把old_db上传到new_db,然后我可以从那里获取从old_db到new_db的数据。

old_db 中的一张表如下所示:

表人员:

person_id bigint,

last_name text,

first_name text,
Run Code Online (Sandbox Code Playgroud)

现在我想将数据传输到具有如下结构的 new_db 中,其中 new_id 列将生成新的 id 编号,并且 person_id 将被引用或传输到 ref_id 列:

表人员:

new_id bigint, ---this column is where the new id will be generated

last_name text,

first_name text,

ref_id bigint; ---this column is where the person_id will be copied
Run Code Online (Sandbox Code Playgroud)

如何创建一个 sql 脚本,以便从 old_db 到 new_db 正确引用该数据???我不需要工具或 GUI,而是需要一个将在 shell 脚本中执行的 sql 脚本。我使用 postgresql 作为我的 DBMS,所以我还需要有关 pg_dump 或 pg_restore 的帮助,以便将 old_db 上传到 new_db 中。TIA。

postgresql database-migration

5
推荐指数
1
解决办法
3937
查看次数

5
推荐指数
1
解决办法
1万
查看次数

tar 转储中 sql 脚本文件的用途是什么?

焦油转储中

$ tar -tf dvdrental.tar 
toc.dat
2163.dat
...
2189.dat
restore.sql
Run Code Online (Sandbox Code Playgroud)

提取后

$ file *
2163.dat:    ASCII text
...
2189.dat:    ASCII text
restore.sql: ASCII text, with very long lines
toc.dat:     PostgreSQL custom database dump - v1.12-0
Run Code Online (Sandbox Code Playgroud)
  1. 的目的是restore.sql什么?
  2. toc.dat是二进制的,但我可以打开它,它看起来也像一个 sql 脚本。restore.sql 和的目的toc.dat有何不同?

    文件中的以下引述没有回答我的问题:

    每个表和 blob 都有一个文件被转储,加上一个所谓的目录文件,以 pg_restore 可以读取的机器可读格式描述转储的对象。

  3. 由于 tar 转储restore.sql除了.dat文件之外还包含sql 脚本文件restore.sqltoc.dattar 转储和普通转储(只有一个 sql 脚本文件)有什么区别?

谢谢。

postgresql dump

3
推荐指数
1
解决办法
2552
查看次数

填充 Postgres 数据库时出现“stdin is not a tty”

请帮助,stdin is not a tty当我在终端中运行以下命令时,我收到此消息。

psql -U postgres kdc < kdc.psql
Run Code Online (Sandbox Code Playgroud)

kdc 是数据库,kdc.psql 是带有填充数据库的命令的 psql 文件。我位于保存 psql 文件的目录中。

python database postgresql stdin psql

2
推荐指数
1
解决办法
1577
查看次数