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/
的脚本,否则我的所有表格都丢失了。
所以如果我cd
到Documents/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/"
我已经在我的 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/
的脚本,否则我的所有表格都丢失了。
所以如果我cd
到Documents/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/"