1

我已经在我的 Mac 上本地安装了 DynamoDB ( http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html ),并且我编写了一个 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/所有表都丢失了。

所以如果我再跑cd,一切都很完美。但是,如果我打开一个新的终端窗口并运行(或从 以外的任何地方运行它),Dynamo 似乎会正常启动,但是当我在 JavaScript Shell 中列出表时,没有表。Documents/dynamodb/$ ddb-start$ ddb-startDocuments/dynamodb/

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

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

4

1 回答 1

0

想通了-我的-dbPath别名中缺少该选项。要从任何地方运行别名,我需要指定共享数据库的位置。工作别名是:

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

于 2017-09-20T14:23:33.627 回答