- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让我的脚本的用户在输入无效密码时提示用户输入正确的密码。我不确定这是一个 psql 配置还是通过使用 python 错误处理来完成的。我应该使用哪一个以及如何使用?我目前的代码如下:
backup_ps = subprocess.Popen(
['pg_dump','-h', ORIGIN_DB, '-U', ORIGIN_DB_USER, ORIGIN_DB_NAME, '-f', destination, '-c',
'-t', 'table1',
'-Fp', '--inserts'],
stdout=subprocess.PIPE
)
output = backup_ps.communicate()[0]
# if password incorrect, prompt for correct password.
最佳答案
我在 FreeBSD 上运行 postgresql96
。当我输入错误密码时,pg_dump
的返回码是 1,而不是 0。
一个天真的解决方案是将您的代码放在一个 while 循环中,如下所示:
while True:
backup_ps = subprocess.Popen(
['pg_dump','-h', ORIGIN_DB, '-U', ORIGIN_DB_USER, ORIGIN_DB_NAME, '-f', destination, '-c',
'-t', 'table1',
'-Fp', '--inserts'],
stdout=subprocess.PIPE
)
output = backup_ps.communicate()[0]
if backup_ps.returncode == 0:
break
问题是 pg_dump
可能会在出现任何错误时返回 1,包括分配内存或磁盘空间的系统调用失败时。所以这实际上并不意味着密码输入失败,您可能希望 Hook 在 n
尝试或使用其他方法后没有成功返回的情况下退出。
另一个解决方案可能是检查转储输出文件是否存在以及最近是否被修改过。您可能还想检查 stderr 以获取有关错误密码的错误消息。
我认为这些解决方案很老套。
最好的解决方案 (AFAICT) 是不使用单独的进程进行转储(因为与该进程通信可能会很痛苦),而是使用 Python 库,例如 psycopg2
访问数据库。
关于python - 多次密码尝试 pg_dump python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47169151/
当我在 railsApp 容器中运行命令 psql --version 时,我得到 9.4.12 并且当我在其中运行相同的命令时postgres 容器,我得到 9.6.2。如何获得匹配的版本? 当我尝
我刚刚安装了 PostgreSQL 8.4,然后安装了 PostgreSQL 9.0。我正在使用 PostgreSQL 9.0 服务,但无法运行 pg_dump。 我得到错误: pg_dump: se
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在运行 pg_dump 并添加五个 -T 标志以排除一组表。在生成的文件中,所有表都被排除在外,但仅排除了指定的 FIRST 表中的序列。 我仍然看到 SELECT pg_catalog.setv
我正在尝试使用 pg_dump 备份一个实时的 postgres 数据库,但是当我尝试这样做时它会导致事情崩溃。 我有许多实时查询积极地从实体化 View (它是一个缓存)读取,它积极地刷新(每分钟或
我在不同的服务器上有两个 postgres 数据库。两者都有一个“公共(public)模式”,里面有相同的表。其中之一用于开发,我正在一些表中创建新列的新表。我如何 pg_dump 正在开发的数据库结
多年来,我们一直使用此命令从名为“apflora”的数据库中转储数据: pg_dump --file=/shared/$FILENAME -Fc -Z9 -o apflora 而且一直有效。我们在 u
我正在寻找一种通过 LAN 在工作站上安装的驱动器上备份数据库的方法。基本上是工作站或服务器上的 Bash 脚本,用于将单个数据库转储到该卷上的路径中。该卷未正常安装,因此在给定用户名/密码和已安装的
我使用以下命令创建了一个 pg_dump - pg_dump -U postgres -d db -n public \ --exclude-table-data 'exclude_table_
我正在编写一个 cron 作业来使用 pg_dump 备份数据库。我正在寻找一种重定向错误消息的方法,以便我可以在流程结束时通过电子邮件发送备份日志文件。这可能吗?我在 pg_dump 文档中看不到任
pg_dump compress 选项具有以下 description : Specify the compression level to use. Zero means no compressio
我正在尝试在我的本地机器上使用 pg_dump 工具。但是,当我在终端窗口中键入 pg_dump database_name 时,我收到的消息是: pg_dump: [archiver (db)] c
我在一个数据库上运行了 pg_dump,并使用 pg_restore 恢复到一个新的、完全空的数据库中,我得到一个错误: pg_restore: [archiver (db)] could not e
为什么 postgresql pg_dump 不允许 sudo 产生权限被拒绝错误?即使是 root 用户也无法 pg_dump? 最佳答案 使用 pg_dump -U postgres [other
我正在尝试使用 pg_Dump 备份数据库产品。 数据库的总大小为 1.6 GB。数据库中的一个表是 product_image,它的大小为 1gb。 当我在数据库上运行 pg_dump 时,数据库备
如果我运行 pg_dump 将表转储到 SQL 文件中,它是否会为表中的最后一行拍摄快照,并将所有行转储到该行? 或者它是否继续转储所有行,甚至那些在运行 pg_dump 之后插入的行? 第二个问题是
我有一个 13GB 大小的数据库。当我用这个命令备份它时: pg_dump -f out.sql --format=p -b -o -O -x -U postgres mydb 文件 out.sql
我正在尝试从 PostgreSQL 数据库创建备份,但出现以下错误:pg_dump:找不到匹配的模式 我以root身份登录并运行命令 pg_dump -f db.dump --format=plain
有没有办法执行 pg_dump 并排除表/ View 和列的 COMMENT ON? 我广泛使用 COMMENT ON 命令来描述所有对象,并且经常在其中包含换行符以进行更清晰的描述,例如: COMM
尝试使用 pg_dump 备份 postgres 数据库 我通过命令提示符连接,这是我按照本教程执行的命令 http://www.postgresqltutorial.com/postgresql-b
我是一名优秀的程序员,十分优秀!