问题标签 [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.
perl - Perl:以编程方式删除 PostgreSQL 表索引,然后在使用 DBD::Pg 进行复制后重新创建
我正在将多个表(约 150 万条记录)从一个数据源复制到另一个数据源,但这需要很长时间。我希望加快我对 DBD::Pg 的使用速度。
我目前正在使用 pg_getcopydata/pg_putcopydata,但我认为目标表上的索引正在减慢进程。
我发现我可以使用 找到有关表索引的一些信息$dbh->statistics_info
,但我很好奇是否有人有编程方式根据这些信息动态删除/重新创建索引。
perl - Perl:是否有类似于 statistics_info 的 DBI 函数来检索 FK 引用和约束?
在 Postgres 中对表执行 a\d+
时,它会列出表模式以及索引,以及将其作为 FK 引用的其他表。例子:
您可以做一些事情$dbh->statistics_info(...)
来检索索引信息。是否有类似的东西来检索 FK 信息(引用和引用)?
看来我的下一个选择是发出->do()
命令或查询系统表。
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 山狮。
perl - 如何确保准备和执行之间的数据库(Postgres)连接仍然存在?
我有在 while 循环中永远运行的守护程序脚本。我有一个准备好的语句,这个语句在每个循环上执行。
例子:
如果准备好的语句是在几个小时前准备好的,就会出现(或可能出现)问题。连接可能会死,我也会执行。在每次执行之前检查 $dbh->ping 看起来有点过头了。
MySQL 支持真正有效的 mysql_auto_reconnect。DBD::Pg 没有这样的东西。我阅读了有关 DBI::Apache 的信息,但我认为它依赖于 mod_perl 等。它显然适用于 Web 应用程序。
是否有“最佳实践”方法来检查连接状态并在需要时重新连接?#
我可以在每个循环上准备语句,但这不是解决方案,而只是解决问题的一种方法。
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
perl - DBD::Pg 中的手动事务管理
我很难让手动事务按照 DBD::Pg 中的记录工作,或者我只是误解了上述文档。
我的理解是,如果我想手动管理事务,我应该关闭 AutoCommit。
但是当我这样做时,我会不断出错
为了让它工作,我需要先打开 AutoCommit。
但这似乎与任何文档都不一致。
我只是误解了吗?
database - perl DBI 执行不识别“?”
我有这个代码:
但是当它想要运行更新时,我得到了这个错误:
DBD::Pg::st 执行失败:当需要 0 时使用 5 个绑定变量调用。
为什么?
perl - 如何使用 DBD::PG 检查 PGSQL 服务器是否仍然存在?
我拼命地试图找到一种简单的方法来定期检查 PGSQL 服务器是否仍然存在于 perl 脚本中。我打算为此使用pg_ping
,但在我的测试中,pg_ping 总是返回 1,与数据库服务器状态无关。
这是我尝试过的代码:
然后我kill -9
在另一个窗口中使用手动终止 PGSQL-server,但结果仍然是1
. 我做错什么了吗?
如果没有,我如何最好地检查数据库服务器是否还活着?
提前致谢。
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.
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?