2

我想使用 boto sdk 连接 DynamoDbLocal 中可用的数据库。我按照以下链接遵循了文档。

http://boto.readthedocs.org/en/latest/dynamodb2_tut.html#dynamodb-local

这是亚马逊提供的官方文档。但是当我执行文档中可用的代码片段时,我无法连接数据库,也无法获取数据库中可用的表。dbname 是“dummy_us-east-1.db”。我的片段是:

from boto.dynamodb2.layer1 import DynamoDBConnection
con = DynamoDBConnection(host='localhost', port=8000,
    aws_access_key_id='dummy',
    aws_secret_access_key='dummy',
    is_secure=False,
    )

print con.list_tables()

我在数据库中有 8 个可用的表。但是在执行 list_tables() 命令后,我得到了空列表。

output:
{u'TableNames':[]}

它不是访问所需的数据库,而是创建和访问新数据库。旧数据库:dummy_us-east-1.db 新数据库:dummy_localhost.db 如何解决这个问题。请给我一些关于 DynamoDbLocal 访问的建议。提前致谢。

4

2 回答 2

1

听起来您正在使用不同的方法连接到 DynamoDB Local。

如果是这样,您还可以使用 sharedDb 标志启动 DynamoDB Local 以强制它使用单个 db 文件:

-sharedDb                   When specified, DynamoDB Local will use a
                            single database instead of separate databases
                            for each credential and region. As a result,
                            all clients will interact with the same set of
                            tables, regardless of their region and
                            credential configuration.

例如

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar --sharedDb
于 2015-02-25T17:57:02.060 回答
1

这是解决方案。这是因为您没有使用 jar 文件的位置启动 dynamodb。

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
于 2015-12-04T06:51:48.890 回答