DynamoDB Local - 以 bash 别名开头时缺少表

DynamoDB Local - missing tables when starting with bash alias

我已经在我的 Mac (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) 本地安装了 DynamoDB,并且我写了一个 bash 别名来避免必须 cd 进入 DynamoDB目录和 运行

$ java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

每次我要启动数据库。但是,别名似乎没有按预期工作...

首先,我写的别名是

alias ddb-start="java -Djava.library.path=~/Documents/dynamodb/DynamoDBLocal_lib -jar ~/Documents/dynamodb/DynamoDBLocal.jar -sharedDb"

当我 运行 $ ddb-start 时,数据库按预期启动:

Initializing DynamoDB Local with the following configuration:
Port:   8000
InMemory:   false
DbPath: null
SharedDb:   true
shouldDelayTransientStatuses:   false
CorsParams: *

问题是,除非我 运行 来自 ~/Documents/dynamodb/ 的脚本,否则我的所有表格都丢失了。

所以如果我cdDocuments/dynamodb/然后运行$ ddb-start,一切都是完美的。但是如果我打开一个新的终端 window 和 运行 $ ddb-start(或者从 Documents/dynamodb/ 以外的任何地方打开 运行),Dynamo 似乎会正常启动但是当我在 JavaScript Shell 中列出表格时,没有表格。

我希望能够从任何目录 运行 别名并让 Dynamo 启动并 运行 正确。我必须 cd 进入目录,即使有别名吗?还是我写的别名有问题?

*** 啊,我注意到,无论我 运行 它来自哪个目录,都会在该目录中创建 shared-local-instance.db 的副本。我不希望发生这种情况,我希望它指向 ~/Documents/dynamodb/ 中的 'original' shared-local-instance.db。我该怎么做?

明白了 - 我在别名中缺少 -dbPath 选项。对于来自任何地方的 运行 别名,我需要指定共享数据库所在的位置。工作别名是:

alias ddb-start="java -Djava.library.path=~/Documents/dynamodb/DynamoDBLocal_lib -jar ~/Documents/dynamodb/DynamoDBLocal.jar -sharedDb -dbPath ~/Documents/dynamodb/"