2017-02-07 8 views
3

テスト目的のために私のローカル環境にいくつかのdynamodbテーブル(スキーマのみ)を複製したいと思います。既存のダイナモテーブルスキーマをjsonにエクスポートする方法は?

aws dynamodb describe-table --table-name Foo > FooTable.json

をしかし、それは、出力スキーマがcreate-tableコマンドからの入力スキーマに準拠していないことは明らかです:最初に私が試した私は避けるようにしようとしている何

aws dynamodb create-table --cli-input-json file://FooTable.json --endpoint=http://localhost:8000

aws dynamodb create-table --generate-cli-skeletonで数十個のスケルトンを生成し、手動で入力することです:/

"有効な形式でテーブルスキーマを取得する方法はありますか"レクリエーションのために?私は、Webグラフィックインターフェイスや標準awsコマンドラインから、「良い」サービスがどのように受け入れられたのかを聞いた後、それを行う簡単な方法がないことは信じられません。

答えて

1

私は、完全なダンプを行うと、bchew/dynamodumpを使用して "復元" するために管理します。コマンドだった:

./dynamodump.py -m backup --schemaOnly --region foo-region --host localhost --srcTable '*' --port 8000 --accessKey fooKey --secretKey barKey 

次に、あなたが戻って地元DynamoDBのか、どこに希望にデータやスキーマを入れて-m restoreモードを使用することができます:)

ということで、私はまだどのように悪いです、それは信じられないほど見つけますアマゾンダイナモツールチェーン。みんなおいでよ。

+0

'dynamodump.py -h'は'要求されたPythonのバージョン(2)がインストールされていません 'という結果になります。それで何をすればいいですか?どのようにスクリプトをPython '3.6.1'に切り替えるのですか? – Cherry

+0

私はそれがpython 3と互換性があるとは思わない。あなたのマシンにpython 2をインストールする必要があります。 – marcio

1

DynamoDBは、プライマリキーとセカンダリインデックスを除き、スキーマを持たないNoSQLデータベースです。 describe-tableには、他の列ではなくキーと索引のみが表示されています。

私は通常、ある種類の初期化コードでテーブルとキーを作成してから、テーブルを使用してコードを作成します。テーブルがすでにあれば怪我はしません。後でデータを挿入しようとして「列」が存在しない場合は、DynamoDBによって自動的に作成されるため、重要ではありません。

データをエクスポートする必要がある場合は、there are tools for thatを使用して、DynamoDBからエクスポート(およびインポートも許可)できるようにします。

git clone [email protected]:bchew/dynamodump.git 

お知らせドキュメントhttps://github.com/bchew/dynamodump--schemaOnlyオプション:

+1

私はそれがNoSQLだと知っています。おそらく問題は、プログラミング言語とSDKを使用して「マイグレーション」を書かなくても、キーとインデックスのメタデータやその他の設定など、既存のテーブル設定を完全にコピーしたいからです。 / – marcio

関連する問題