2017-09-20 2 views
0

Ich habe DynamoDB lokal auf meinem Mac installiert (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) und ich habe ein Bash-Alias ​​geschrieben beabsichtigen, cd in das DynamoDB Verzeichnis zu vermeiden, und führenDynamoDB Lokale - Tabellen fehlen, wenn sie mit Bash alias Start

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

jedes Mal, wenn ich die Datenbank starten möchte. Allerdings ist der Alias ​​nicht scheinen, wie erwartet zu arbeiten ...

First off, der Alias, die ich geschrieben habe, ist

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

und wenn ich $ ddb-start ausführen, die Datenbank startet, erwartet:

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

Das Problem ist, es sei denn ich das Drehbuch von ~/Documents/dynamodb/, alle meine Tabellen fehlen laufen.

Also wenn ich cd bis Documents/dynamodb/ und dann $ ddb-start laufen, ist alles perfekt. Aber wenn ich ein neues Terminalfenster öffne und $ ddb-start (oder anderswo als Documents/dynamodb/) starte, scheint Dynamo zu starten, wie es sollte, aber wenn ich die Tabellen in der JavaScript-Shell listet, gibt es keine Tabellen.

Ich hatte gehofft, in der Lage zu sein, den Alias ​​von irgendeinem Verzeichnis laufen zu lassen und Dynamo richtig zu starten und zu lassen. Muss ich cd in das Verzeichnis, auch mit einem Alias? Oder stimmt etwas nicht mit dem Alias, den ich geschrieben habe?

*** Ah, ich habe festgestellt, dass, egal aus welchem ​​Verzeichnis ich es ausführe, eine Kopie von shared-local-instance.db in diesem Verzeichnis erstellt wird. Ich will nicht, dass das passiert, ich möchte es auf das "Original" shared-local-instance.db in ~/Documents/dynamodb/ zeigen. Wie kann ich das machen?

Antwort

0

Ich habe es herausgefunden - mir fehlte die -dbPath Option in meinem Alias. Um den Alias ​​von überall auszuführen, musste ich angeben, wo sich die gemeinsam genutzte Datenbank befindet. Der Arbeitsalias lautet:

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