问题标签 [dbd-pg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
447 浏览

perl - Perl:以编程方式删除 PostgreSQL 表索引,然后在使用 DBD::Pg 进行复制后重新创建

我正在将多个表(约 150 万条记录)从一个数据源复制到另一个数据源,但这需要很长时间。我希望加快我对 DBD::Pg 的使用速度。

我目前正在使用 pg_getcopydata/pg_putcopydata,但我认为目标表上的索引正在减慢进程。

我发现我可以使用 找到有关表索引的一些信息$dbh->statistics_info,但我很好奇是否有人有编程方式根据这些信息动态删除/重新创建索引。

0 投票
2 回答
199 浏览

perl - Perl:是否有类似于 statistics_info 的 DBI 函数来检索 FK 引用和约束?

在 Postgres 中对表执行 a\d+时,它会列出表模式以及索引,以及将其作为 FK 引用的其他表。例子:


您可以做一些事情$dbh->statistics_info(...)来检索索引信息。是否有类似的东西来检索 FK 信息(引用和引用)?


看来我的下一个选择是发出->do()命令或查询系统表。

0 投票
2 回答
3303 浏览

macos - Mac OS X 上的 DBD::Pg - 没有找到任何方法

从命令行执行 .cgi (作为有权访问数据库的用户),我得到

install_driver(Pg) 失败:在@INC 中找不到 DBD/Pg.pm(@INC 包含:/Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/ 5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/ 5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at (eval 4) line 3. 也许 DBD::Pg perl 模块没有已完全安装,或者“Pg”的大小写不正确。

cpan -D DBD::Pg 显示

DBD::Pg

已安装 DBI T/TU/TURNSTEP/DBD-Pg-2.19.2.tar.gz /opt/local/lib/perl5/site_perl/5.12.4/darwin-thread-multi-2level/DBD/Pg.pm 的 Postgres 驱动程序: 2.19.2 CPAN: 2.19.2 最新 DBD::Pg 开发人员 (DBDPG) dbd-pg@perl.org

尝试通过 PERL5LIB 或 PERLLIB 导出上述路径没有不同的结果。

.cgi 引用 /usr/bin/perl,它告诉

这是为 darwin-thread-multi-2level 构建的 perl 5,版本 12,subversion 4 (v5.12.4)(带有 2 个注册补丁,有关更多详细信息,请参见 perl -V)

我喜欢将模块路径永久设置为安装 DBD::Pg 的路径 (/opt/...)。我想知道为什么错误输出目录列表中没有提到这一点。

我通过 cpanm 安装了 DBD::Pg。

我使用 Mac OS X 山狮。

0 投票
3 回答
7084 浏览

perl - 如何确保准备和执行之间的数据库(Postgres)连接仍然存在?

我有在 while 循环中永远运行的守护程序脚本。我有一个准备好的语句,这个语句在每个循环上执行。

例子:

如果准备好的语句是在几个小时前准备好的,就会出现(或可能出现)问题。连接可能会死,我也会执行。在每次执行之前检查 $dbh->ping 看起来有点过头了。

MySQL 支持真正有效的 mysql_auto_reconnect。DBD::Pg 没有这样的东西。我阅读了有关 DBI::Apache 的信息,但我认为它依赖于 mod_perl 等。它显然适用于 Web 应用程序。

是否有“最佳实践”方法来检查连接状态并在需要时重新连接?#

我可以在每个循环上准备语句,但这不是解决方案,而只是解决问题的一种方法。

0 投票
2 回答
856 浏览

perl - Perl 死于:“使用:DBD::Pg::db::DESTROY(dbh) 在全局销毁期间”

一个稳定的、基于 Web 的、单线程/进程、在生产中运行的 perl 应用程序开始间歇性地抛出此错误,并且仅在系统负载较重的情况下。我们无法确定根本原因。

任何人都可以对这个错误提供任何解释吗?当 Perl 在关闭之前进行清理时,在没有参数(self?)的情况下调用 DESTROY 时,它似乎从 Pg.sx 中抛出。(我通过 google 在较旧的源代码中看到该消息,但在我们的版本中没有。)我们的环境:

  • 操作系统:FreeBSD 8.3-STABLE
  • Perl v5.14.2
  • DBD::Pg v2.19.3
  • PostgreSQL:v9.2.3
0 投票
2 回答
2023 浏览

perl - DBD::Pg 中的手动事务管理

我很难让手动事务按照 DBD::Pg 中的记录工作,或者我只是误解了上述文档。

我的理解是,如果我想手动管理事务,我应该关闭 AutoCommit。

但是当我这样做时,我会不断出错

为了让它工作,我需要先打开 AutoCommit。

但这似乎与任何文档都不一致。

我只是误解了吗?

0 投票
2 回答
1030 浏览

database - perl DBI 执行不识别“?”

我有这个代码:

但是当它想要运行更新时,我得到了这个错误:

DBD::Pg::st 执行失败:当需要 0 时使用 5 个绑定变量调用。

为什么?

0 投票
1 回答
640 浏览

perl - 如何使用 DBD::PG 检查 PGSQL 服务器是否仍然存在?

我拼命地试图找到一种简单的方法来定期检查 PGSQL 服务器是否仍然存在于 perl 脚本中。我打算为此使用pg_ping,但在我的测试中,pg_ping 总是返回 1,与数据库服务器状态无关。

这是我尝试过的代码:

然后我kill -9在另一个窗口中使用手动终止 PGSQL-server,但结果仍然是1. 我做错什么了吗?

如果没有,我如何最好地检查数据库服务器是否还活着?

提前致谢。

0 投票
2 回答
4298 浏览

perl - Installing perl DBD:Pg on Mac

I run:

it asks:

I say:

it runs... and the last lines are:

I saw a DBI_USER config turn to jgp (my login) which i also created in the DB.

Any hint on where I should start?

As requested, here is the full test result:

I must admit I am new to perl and PostgreSQL.

0 投票
8 回答
39467 浏览

perl - Linux: How to install DBD::Pg module?

Postgres DB is already installed. I'm not using system perl I have installed another perl in "/srv/data203806/Migration/CPAN/localperl/bin". When I'm trying to install, It is asking for PATH TO pg_config:

Please help me to install DBD::Pg? How to get path to pg_config?