我正在寻找一种方法,INSERT使用pg_dumpPostgreSQL 从数据库中的一个特定表中获取所有行作为语句.
例如,我有表A并且表AI中的所有行都需要作为INSERT语句,它还应该将这些语句转储到文件中.
这可能吗?
我正在尝试从命令行创建数据库.我的SO是centos,postgres是9.2
sudo -u postgres psql createdb test
Password for user test:
Run Code Online (Sandbox Code Playgroud)
为什么用户问我?
我无法弄清楚如何从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问题,但我仍然被卡住了!:)
我想将我的数据库导出为.sql文件.有人能帮我吗?我发现的解决方案不起作用.请详细说明.在Windows 7上.谢谢
我正在研究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.
到目前为止,我的流程如下:
tar czf dvd-database.tar.gz dvdrental.zip(我也尝试将zip解压缩到一个文件夹,结果相同,并删除.gz)将其解压缩到.tarpg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tar如上所述运行.我目前正在使用Postgres 9.5,这可能会导致问题.寻找答案,指出我在这个过程中出错的地方或如何将Postgres数据库的存档更新到9.5.
我使用EMS SQL Manager for PostgreSQL,我需要转储困难的数据库(域,300多个存储过程/函数,触发器,数据等).这个工具不能这样做.
请为postgres建议好的GUI工具.
我在尝试将 postgres 转储文件导入 Google Cloud SQL 时遇到以下错误消息。
输入是 PostgreSQL 自定义格式转储。使用 pg_restore 命令行客户端将此转储恢复到数据库。这可能需要几分钟的时间。在此操作运行期间,您可以继续查看有关实例的信息。
请让我知道如何将 postgres 转储文件(托管在 Google Cloud Storage 上)导入到 Google Cloud SQL?
情况如下:使用Heroku和Postgres,您可以自动生成备份转储文件.但你能用它做什么呢?
我发现自己在后一点上苦苦挣扎,我想分享我是如何做到的.
如何从Postgres Heroku上的先前备份恢复特定数据?
以下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"
我有两个数据库,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。
$ 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)
restore.sql什么?toc.dat是二进制的,但我可以打开它,它看起来也像一个 sql 脚本。restore.sql
和的目的toc.dat有何不同?
文件中的以下引述没有回答我的问题:
每个表和 blob 都有一个文件被转储,加上一个所谓的目录文件,以 pg_restore 可以读取的机器可读格式描述转储的对象。
restore.sql除了.dat文件之外还包含sql 脚本文件restore.sql与toc.dattar 转储和普通转储(只有一个 sql 脚本文件)有什么区别?谢谢。
请帮助,stdin is not a tty当我在终端中运行以下命令时,我收到此消息。
psql -U postgres kdc < kdc.psql
Run Code Online (Sandbox Code Playgroud)
kdc 是数据库,kdc.psql 是带有填充数据库的命令的 psql 文件。我位于保存 psql 文件的目录中。
postgresql ×12
bash ×1
batch-file ×1
database ×1
docker ×1
dump ×1
gcloud ×1
heroku ×1
ngrok ×1
pg-restore ×1
psql ×1
python ×1
stdin ×1
tar ×1