【问题标题】:I'm trying to install skytools in order to migrate a DB to an Amazon RDS, but I'm getting an error我正在尝试安装 skytools 以将数据库迁移到 Amazon RDS,但出现错误
【发布时间】:2016-08-01 13:31:35
【问题描述】:

设置详情: 1x EC2 运行 Ubuntu 14.04 和 Postgres 9.3, 1x RDS 运行 Postgres 9.3

我正在尝试将我在 EC2 上的 postgres 数据库移动到 RDS 上。我正在使用 Londiste,它是 recommended by AWS,用于以最少的停机时间迁移数据库。具体来说,我使用的是 Londiste/Skytools 2.1.13,因为 Londiste3 在两个系统上都需要超级用户权限。

我尝试通过他们网站上的 zip 和 apt-get(均为 2.1.13)安装 Skytools。我已经安装了我认为的所有依赖项:postgres、libpq-dev、postgresql-server-dev-9.3、pip 和 psycopg2。

无论如何,每当我尝试使用任何 skytools 命令时,都会收到以下错误:

回溯(最近一次通话最后一次):
文件“/usr/local/bin/pgqadm.py”,第 9 行,在 从 pgq.ticker 导入 SmartTicker 文件“/usr/local/lib/python2.7/dist-packages/pgq/init.py”,第 6 行,在

导入 pgq.consumer 文件“/usr/local/lib/python2.7/dist-packages/pgq/consumer.py”,第 6 行, 在 从 pgq.baseconsumer 导入 BaseConsumer,BaseBatchWalker 文件“/usr/local/lib/python2.7/dist-packages/pgq/baseconsumer.py”,第 75 行,

在 类 BaseConsumer(skytools.DBScript):文件“/usr/local/lib/python2.7/dist-packages/skytools/apipkg.py”,第 114 行,

在 __makeattr 结果 = importobj(modpath, attrname) 文件“/usr/local/lib/python2.7/dist-packages/skytools/apipkg.py”,第 37 行,

在 importobj 中 模块 = import(modpath, None, None, ['doc']) 文件 "/usr/local/lib/python2.7/dist-packages/skytools/scripting .py",行 23、

在 default_skylog = skytools.installer_config.skylog

AttributeError: 'module' 对象没有属性 'skylog'

我是否缺少依赖项? (Skylog 似乎是 skytools 的一部分,所以我得出结论并非如此。)还有其他人遇到过这个问题吗? (这个错误似乎没有任何谷歌搜索结果。)谢谢!

【问题讨论】:

  • 我也遇到过这个问题。你已经解决了吗?

标签: python postgresql amazon-web-services


【解决方案1】:

tl;博士:

确保您正在运行位于本地skytools-2.x.y 安装目录中的pgqadm.py,例如:./python/pgqadm.py ticker.ini install

如果您之前安装了 Skytools 3.x,这可能会出现问题,它可能首先出现在您的 PATH 中。

背景

我刚刚遇到了同样的问题。我有相同的用例(迁移 pg->rds),并遵循AWS documentation 的相同建议。

我最初安装了 Skytools 3.x,然后才注意到它需要对可能的副本具有超级用户权限。 which pgqadm.py 返回 /usr/bin/pgqadm.py,这是我废弃的 Skytools 3.x 安装的产物。

当我去 Skytools 源代码库寻找 skylog 的实例时,我开始怀疑版本冲突。第一个结果在这里: https://github.com/pgq/skytools-legacy/blob/11afc5210a92d4a2ccf701e4f92138488c31a3cb/python/skytools/installer_config.py.in

但是,我意识到这个存储库现在正在跟踪最新的 3.x 版本。我切换到明显的 2.1.x 分支,正如预期的那样,skylog 无处可寻:

https://github.com/pgq/skytools-legacy/blob/skytools_2_1_stable/python/skytools/installer_config.py.in

完全限定pgqadm.py 的路径可以在这种情况下解决此问题。

【讨论】:

    猜你喜欢
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2018-10-21
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多