【发布时间】:2012-07-12 17:03:44
【问题描述】:
我有一个包含各种插入语句和偶尔的“\connect”命令的数据库转储文件
问题是PG::Connection.exec() 不接受psql 的\-commands,如\i 或\c 等。
有没有办法使用 ruby-pg(或者可能是另一个 pg-gem)来完成这项工作?
由于数据库位于不同的主机上,我无法使用 Unix 套接字,因此无法在没有密码的情况下以用户 postgres 的身份连接。
【问题讨论】:
-
我的回答是直接针对这个问题,但我必须问一个更哲学的问题:如果您无法连接到数据库以加载脚本并且显然无法安排由可以完成的人来完成, 应该你一开始就这样做。如果您无法在本地登录并且您不知道密码,我认为您不应该这样做。也许这是您的 DBA 的工作(或者您需要获得更好的 DBA)。请不要误认为这对我来说很困难,但是应该使用 psql 加载脚本。为什么你不能这样做是管理问题,而不是技术问题。
-
有点不同。我是 dba 和 unix 管理员。事情是我必须为那些没有经验的客户提供工具。我喜欢用 shell 编写的一百万种工具,它们让我的生活更轻松。包括用于故障转移和恢复一大堆 unix 系统和数据库的整个套件。所以我希望我认为我知道我在做什么;)我目前正在将大部分 shell 内容迁移到 ruby,因为我希望它可测试并且我希望它更易于维护。我在 shell 中做了一些曲折,我希望在 ruby 中不必这样做。包括重度嵌套的 cmd。
-
另一件事,请不要误会我的意思。我觉得我必须在这里解释一下自己。自从机器首次进入数据中心以来,我一直在维护这个系统(现在有 20 个,正在进行一些漂亮的复制工作)。我是对系统了如指掌的人,我只是想让我的生活更轻松。是的,它是一种技术。问题。我只是太懒了,我的生命太短了,不能每天手工做所有的事情。信不信由你,我可以在 8 小时后下班,因为这些东西是自动化的并且可以正常工作。为尽可能有效地做事而提出愚蠢的问题而感到抱歉
标签: ruby postgresql dump psql