ddbcli 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -13
- data/.gitignore +17 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +197 -0
- data/Rakefile +5 -0
- data/bin/ddbcli +0 -2
- data/ddbcli.gemspec +25 -0
- data/lib/ddbcli/cli/help.rb +3 -1
- data/lib/ddbcli/cli/options.rb +6 -3
- data/lib/ddbcli/ddb-driver.rb +19 -8
- data/lib/ddbcli/version.rb +5 -0
- data/lib/ddbcli.rb +2 -0
- data/spec/ddbcli_spec.rb +196 -0
- data/spec/delete_spec.rb +128 -0
- data/spec/insert_spec.rb +50 -0
- data/spec/select_spec.rb +246 -0
- data/spec/spec_helper.rb +52 -0
- data/spec/update_spec.rb +313 -0
- metadata +75 -13
- data/README +0 -185
data/spec/update_spec.rb
ADDED
@@ -0,0 +1,313 @@
|
|
1
|
+
describe 'ddbcli' do
|
2
|
+
context 'update' do
|
3
|
+
before do
|
4
|
+
ddbcli(<<-'EOS')
|
5
|
+
CREATE TABLE `employees` (
|
6
|
+
`emp_no` NUMBER HASH,
|
7
|
+
`birth_date` STRING RANGE
|
8
|
+
) read=2 write=2;
|
9
|
+
|
10
|
+
INSERT INTO `employees`
|
11
|
+
(`birth_date`, `emp_no`, `first_name`, `gender`, `hire_date`, `last_name`)
|
12
|
+
VALUES
|
13
|
+
("1956-05-15",2,"Cathie","M","1997-04-11","Keohane"),
|
14
|
+
("1957-09-16",4,"Aemilian","M","1990-09-25","Roccetti"),
|
15
|
+
("1959-07-01",4,"Dayanand","M","1989-09-01","Waterhouse"),
|
16
|
+
("1964-12-29",7,"Mack","F","1988-02-25","Hambrick"),
|
17
|
+
("1962-07-06",4,"Tristan","M","1985-07-20","Biran"),
|
18
|
+
("1964-04-30",2,"Akhilish","F","1985-03-21","Isaak"),
|
19
|
+
("1963-07-14",1,"Katsuyuki","F","1989-12-28","Weedon"),
|
20
|
+
("1961-10-19",2,"Collette","M","1993-02-26","Ghemri"),
|
21
|
+
("1955-04-26",4,"Zine","M","1991-06-19","Butner"),
|
22
|
+
("1961-04-28",4,"Selwyn","F","1994-08-12","Parascandalo");
|
23
|
+
EOS
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'update by pk' do
|
27
|
+
ddbcli('update employees set hire_date = "1977-11-11", foo = "bar" where emp_no = 4 and birth_date = "1961-04-28"')
|
28
|
+
out = ddbcli('select all * from employees')
|
29
|
+
out = JSON.parse(out)
|
30
|
+
|
31
|
+
expect(out).to eq(
|
32
|
+
[{"birth_date"=>"1956-05-15",
|
33
|
+
"emp_no"=>2,
|
34
|
+
"first_name"=>"Cathie",
|
35
|
+
"gender"=>"M",
|
36
|
+
"hire_date"=>"1997-04-11",
|
37
|
+
"last_name"=>"Keohane"},
|
38
|
+
{"birth_date"=>"1961-10-19",
|
39
|
+
"emp_no"=>2,
|
40
|
+
"first_name"=>"Collette",
|
41
|
+
"gender"=>"M",
|
42
|
+
"hire_date"=>"1993-02-26",
|
43
|
+
"last_name"=>"Ghemri"},
|
44
|
+
{"birth_date"=>"1964-04-30",
|
45
|
+
"emp_no"=>2,
|
46
|
+
"first_name"=>"Akhilish",
|
47
|
+
"gender"=>"F",
|
48
|
+
"hire_date"=>"1985-03-21",
|
49
|
+
"last_name"=>"Isaak"},
|
50
|
+
{"birth_date"=>"1963-07-14",
|
51
|
+
"emp_no"=>1,
|
52
|
+
"first_name"=>"Katsuyuki",
|
53
|
+
"gender"=>"F",
|
54
|
+
"hire_date"=>"1989-12-28",
|
55
|
+
"last_name"=>"Weedon"},
|
56
|
+
{"birth_date"=>"1964-12-29",
|
57
|
+
"emp_no"=>7,
|
58
|
+
"first_name"=>"Mack",
|
59
|
+
"gender"=>"F",
|
60
|
+
"hire_date"=>"1988-02-25",
|
61
|
+
"last_name"=>"Hambrick"},
|
62
|
+
{"birth_date"=>"1955-04-26",
|
63
|
+
"emp_no"=>4,
|
64
|
+
"first_name"=>"Zine",
|
65
|
+
"gender"=>"M",
|
66
|
+
"hire_date"=>"1991-06-19",
|
67
|
+
"last_name"=>"Butner"},
|
68
|
+
{"birth_date"=>"1957-09-16",
|
69
|
+
"emp_no"=>4,
|
70
|
+
"first_name"=>"Aemilian",
|
71
|
+
"gender"=>"M",
|
72
|
+
"hire_date"=>"1990-09-25",
|
73
|
+
"last_name"=>"Roccetti"},
|
74
|
+
{"birth_date"=>"1959-07-01",
|
75
|
+
"emp_no"=>4,
|
76
|
+
"first_name"=>"Dayanand",
|
77
|
+
"gender"=>"M",
|
78
|
+
"hire_date"=>"1989-09-01",
|
79
|
+
"last_name"=>"Waterhouse"},
|
80
|
+
{"birth_date"=>"1961-04-28",
|
81
|
+
"emp_no"=>4,
|
82
|
+
"first_name"=>"Selwyn",
|
83
|
+
"foo"=>"bar",
|
84
|
+
"gender"=>"F",
|
85
|
+
"hire_date"=>"1977-11-11",
|
86
|
+
"last_name"=>"Parascandalo"},
|
87
|
+
{"birth_date"=>"1962-07-06",
|
88
|
+
"emp_no"=>4,
|
89
|
+
"first_name"=>"Tristan",
|
90
|
+
"gender"=>"M",
|
91
|
+
"hire_date"=>"1985-07-20",
|
92
|
+
"last_name"=>"Biran"}]
|
93
|
+
)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'update all' do
|
97
|
+
ddbcli('update all employees set hire_date = "1977-11-11", foo = "bar" where gender = "F"')
|
98
|
+
out = ddbcli('select all * from employees')
|
99
|
+
out = JSON.parse(out)
|
100
|
+
|
101
|
+
expect(out).to eq(
|
102
|
+
[{"birth_date"=>"1956-05-15",
|
103
|
+
"emp_no"=>2,
|
104
|
+
"first_name"=>"Cathie",
|
105
|
+
"gender"=>"M",
|
106
|
+
"hire_date"=>"1997-04-11",
|
107
|
+
"last_name"=>"Keohane"},
|
108
|
+
{"birth_date"=>"1961-10-19",
|
109
|
+
"emp_no"=>2,
|
110
|
+
"first_name"=>"Collette",
|
111
|
+
"gender"=>"M",
|
112
|
+
"hire_date"=>"1993-02-26",
|
113
|
+
"last_name"=>"Ghemri"},
|
114
|
+
{"birth_date"=>"1964-04-30",
|
115
|
+
"emp_no"=>2,
|
116
|
+
"first_name"=>"Akhilish",
|
117
|
+
"foo"=>"bar",
|
118
|
+
"gender"=>"F",
|
119
|
+
"hire_date"=>"1977-11-11",
|
120
|
+
"last_name"=>"Isaak"},
|
121
|
+
{"birth_date"=>"1963-07-14",
|
122
|
+
"emp_no"=>1,
|
123
|
+
"first_name"=>"Katsuyuki",
|
124
|
+
"foo"=>"bar",
|
125
|
+
"gender"=>"F",
|
126
|
+
"hire_date"=>"1977-11-11",
|
127
|
+
"last_name"=>"Weedon"},
|
128
|
+
{"birth_date"=>"1964-12-29",
|
129
|
+
"emp_no"=>7,
|
130
|
+
"first_name"=>"Mack",
|
131
|
+
"foo"=>"bar",
|
132
|
+
"gender"=>"F",
|
133
|
+
"hire_date"=>"1977-11-11",
|
134
|
+
"last_name"=>"Hambrick"},
|
135
|
+
{"birth_date"=>"1955-04-26",
|
136
|
+
"emp_no"=>4,
|
137
|
+
"first_name"=>"Zine",
|
138
|
+
"gender"=>"M",
|
139
|
+
"hire_date"=>"1991-06-19",
|
140
|
+
"last_name"=>"Butner"},
|
141
|
+
{"birth_date"=>"1957-09-16",
|
142
|
+
"emp_no"=>4,
|
143
|
+
"first_name"=>"Aemilian",
|
144
|
+
"gender"=>"M",
|
145
|
+
"hire_date"=>"1990-09-25",
|
146
|
+
"last_name"=>"Roccetti"},
|
147
|
+
{"birth_date"=>"1959-07-01",
|
148
|
+
"emp_no"=>4,
|
149
|
+
"first_name"=>"Dayanand",
|
150
|
+
"gender"=>"M",
|
151
|
+
"hire_date"=>"1989-09-01",
|
152
|
+
"last_name"=>"Waterhouse"},
|
153
|
+
{"birth_date"=>"1961-04-28",
|
154
|
+
"emp_no"=>4,
|
155
|
+
"first_name"=>"Selwyn",
|
156
|
+
"foo"=>"bar",
|
157
|
+
"gender"=>"F",
|
158
|
+
"hire_date"=>"1977-11-11",
|
159
|
+
"last_name"=>"Parascandalo"},
|
160
|
+
{"birth_date"=>"1962-07-06",
|
161
|
+
"emp_no"=>4,
|
162
|
+
"first_name"=>"Tristan",
|
163
|
+
"gender"=>"M",
|
164
|
+
"hire_date"=>"1985-07-20",
|
165
|
+
"last_name"=>"Biran"}]
|
166
|
+
)
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'update add' do
|
170
|
+
ddbcli('update all employees set foo = 500')
|
171
|
+
ddbcli('update all employees add foo = 1000 where gender = "F"')
|
172
|
+
out = ddbcli('select all * from employees')
|
173
|
+
out = JSON.parse(out)
|
174
|
+
|
175
|
+
expect(out).to eq(
|
176
|
+
[{"birth_date"=>"1956-05-15",
|
177
|
+
"emp_no"=>2,
|
178
|
+
"first_name"=>"Cathie",
|
179
|
+
"foo"=>500,
|
180
|
+
"gender"=>"M",
|
181
|
+
"hire_date"=>"1997-04-11",
|
182
|
+
"last_name"=>"Keohane"},
|
183
|
+
{"birth_date"=>"1961-10-19",
|
184
|
+
"emp_no"=>2,
|
185
|
+
"first_name"=>"Collette",
|
186
|
+
"foo"=>500,
|
187
|
+
"gender"=>"M",
|
188
|
+
"hire_date"=>"1993-02-26",
|
189
|
+
"last_name"=>"Ghemri"},
|
190
|
+
{"birth_date"=>"1964-04-30",
|
191
|
+
"emp_no"=>2,
|
192
|
+
"first_name"=>"Akhilish",
|
193
|
+
"foo"=>1500,
|
194
|
+
"gender"=>"F",
|
195
|
+
"hire_date"=>"1985-03-21",
|
196
|
+
"last_name"=>"Isaak"},
|
197
|
+
{"birth_date"=>"1963-07-14",
|
198
|
+
"emp_no"=>1,
|
199
|
+
"first_name"=>"Katsuyuki",
|
200
|
+
"foo"=>1500,
|
201
|
+
"gender"=>"F",
|
202
|
+
"hire_date"=>"1989-12-28",
|
203
|
+
"last_name"=>"Weedon"},
|
204
|
+
{"birth_date"=>"1964-12-29",
|
205
|
+
"emp_no"=>7,
|
206
|
+
"first_name"=>"Mack",
|
207
|
+
"foo"=>1500,
|
208
|
+
"gender"=>"F",
|
209
|
+
"hire_date"=>"1988-02-25",
|
210
|
+
"last_name"=>"Hambrick"},
|
211
|
+
{"birth_date"=>"1955-04-26",
|
212
|
+
"emp_no"=>4,
|
213
|
+
"first_name"=>"Zine",
|
214
|
+
"foo"=>500,
|
215
|
+
"gender"=>"M",
|
216
|
+
"hire_date"=>"1991-06-19",
|
217
|
+
"last_name"=>"Butner"},
|
218
|
+
{"birth_date"=>"1957-09-16",
|
219
|
+
"emp_no"=>4,
|
220
|
+
"first_name"=>"Aemilian",
|
221
|
+
"foo"=>500,
|
222
|
+
"gender"=>"M",
|
223
|
+
"hire_date"=>"1990-09-25",
|
224
|
+
"last_name"=>"Roccetti"},
|
225
|
+
{"birth_date"=>"1959-07-01",
|
226
|
+
"emp_no"=>4,
|
227
|
+
"first_name"=>"Dayanand",
|
228
|
+
"foo"=>500,
|
229
|
+
"gender"=>"M",
|
230
|
+
"hire_date"=>"1989-09-01",
|
231
|
+
"last_name"=>"Waterhouse"},
|
232
|
+
{"birth_date"=>"1961-04-28",
|
233
|
+
"emp_no"=>4,
|
234
|
+
"first_name"=>"Selwyn",
|
235
|
+
"foo"=>1500,
|
236
|
+
"gender"=>"F",
|
237
|
+
"hire_date"=>"1994-08-12",
|
238
|
+
"last_name"=>"Parascandalo"},
|
239
|
+
{"birth_date"=>"1962-07-06",
|
240
|
+
"emp_no"=>4,
|
241
|
+
"first_name"=>"Tristan",
|
242
|
+
"foo"=>500,
|
243
|
+
"gender"=>"M",
|
244
|
+
"hire_date"=>"1985-07-20",
|
245
|
+
"last_name"=>"Biran"}]
|
246
|
+
)
|
247
|
+
end
|
248
|
+
|
249
|
+
it 'update delete' do
|
250
|
+
ddbcli('update all employees set hire_date = null where gender = "M"')
|
251
|
+
out = ddbcli('select all * from employees')
|
252
|
+
out = JSON.parse(out)
|
253
|
+
|
254
|
+
expect(out).to eq(
|
255
|
+
[{"birth_date"=>"1956-05-15",
|
256
|
+
"emp_no"=>2,
|
257
|
+
"first_name"=>"Cathie",
|
258
|
+
"gender"=>"M",
|
259
|
+
"last_name"=>"Keohane"},
|
260
|
+
{"birth_date"=>"1961-10-19",
|
261
|
+
"emp_no"=>2,
|
262
|
+
"first_name"=>"Collette",
|
263
|
+
"gender"=>"M",
|
264
|
+
"last_name"=>"Ghemri"},
|
265
|
+
{"birth_date"=>"1964-04-30",
|
266
|
+
"emp_no"=>2,
|
267
|
+
"first_name"=>"Akhilish",
|
268
|
+
"gender"=>"F",
|
269
|
+
"hire_date"=>"1985-03-21",
|
270
|
+
"last_name"=>"Isaak"},
|
271
|
+
{"birth_date"=>"1963-07-14",
|
272
|
+
"emp_no"=>1,
|
273
|
+
"first_name"=>"Katsuyuki",
|
274
|
+
"gender"=>"F",
|
275
|
+
"hire_date"=>"1989-12-28",
|
276
|
+
"last_name"=>"Weedon"},
|
277
|
+
{"birth_date"=>"1964-12-29",
|
278
|
+
"emp_no"=>7,
|
279
|
+
"first_name"=>"Mack",
|
280
|
+
"gender"=>"F",
|
281
|
+
"hire_date"=>"1988-02-25",
|
282
|
+
"last_name"=>"Hambrick"},
|
283
|
+
{"birth_date"=>"1955-04-26",
|
284
|
+
"emp_no"=>4,
|
285
|
+
"first_name"=>"Zine",
|
286
|
+
"gender"=>"M",
|
287
|
+
"last_name"=>"Butner"},
|
288
|
+
{"birth_date"=>"1957-09-16",
|
289
|
+
"emp_no"=>4,
|
290
|
+
"first_name"=>"Aemilian",
|
291
|
+
"gender"=>"M",
|
292
|
+
"last_name"=>"Roccetti"},
|
293
|
+
{"birth_date"=>"1959-07-01",
|
294
|
+
"emp_no"=>4,
|
295
|
+
"first_name"=>"Dayanand",
|
296
|
+
"gender"=>"M",
|
297
|
+
"last_name"=>"Waterhouse"},
|
298
|
+
{"birth_date"=>"1961-04-28",
|
299
|
+
"emp_no"=>4,
|
300
|
+
"first_name"=>"Selwyn",
|
301
|
+
"gender"=>"F",
|
302
|
+
"hire_date"=>"1994-08-12",
|
303
|
+
"last_name"=>"Parascandalo"},
|
304
|
+
{"birth_date"=>"1962-07-06",
|
305
|
+
"emp_no"=>4,
|
306
|
+
"first_name"=>"Tristan",
|
307
|
+
"gender"=>"M",
|
308
|
+
"last_name"=>"Biran"}]
|
309
|
+
)
|
310
|
+
end
|
311
|
+
|
312
|
+
end
|
313
|
+
end
|
metadata
CHANGED
@@ -1,38 +1,87 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddbcli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-12-
|
11
|
+
date: 2013-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.3'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.14.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.14.1
|
69
|
+
description: ddbcli is an interactive command-line client of Amazon DynamoDB.
|
28
70
|
email: sgwr_dts@yahoo.co.jp
|
29
71
|
executables:
|
30
72
|
- ddbcli
|
31
73
|
extensions: []
|
32
74
|
extra_rdoc_files: []
|
33
75
|
files:
|
34
|
-
-
|
76
|
+
- .gitignore
|
77
|
+
- .rspec
|
78
|
+
- Gemfile
|
79
|
+
- LICENSE.txt
|
80
|
+
- README.md
|
81
|
+
- Rakefile
|
35
82
|
- bin/ddbcli
|
83
|
+
- ddbcli.gemspec
|
84
|
+
- lib/ddbcli.rb
|
36
85
|
- lib/ddbcli/cli/evaluate.rb
|
37
86
|
- lib/ddbcli/cli/functions.rb
|
38
87
|
- lib/ddbcli/cli/help.rb
|
@@ -46,9 +95,16 @@ files:
|
|
46
95
|
- lib/ddbcli/ddb-parser.tab.rb
|
47
96
|
- lib/ddbcli/ddb-parser.y
|
48
97
|
- lib/ddbcli/ddb-rubyext.rb
|
49
|
-
- lib/ddbcli.rb
|
98
|
+
- lib/ddbcli/version.rb
|
99
|
+
- spec/ddbcli_spec.rb
|
100
|
+
- spec/delete_spec.rb
|
101
|
+
- spec/insert_spec.rb
|
102
|
+
- spec/select_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
104
|
+
- spec/update_spec.rb
|
50
105
|
homepage: https://bitbucket.org/winebarrel/ddbcli
|
51
|
-
licenses:
|
106
|
+
licenses:
|
107
|
+
- MIT
|
52
108
|
metadata: {}
|
53
109
|
post_install_message:
|
54
110
|
rdoc_options: []
|
@@ -56,18 +112,24 @@ require_paths:
|
|
56
112
|
- lib
|
57
113
|
required_ruby_version: !ruby/object:Gem::Requirement
|
58
114
|
requirements:
|
59
|
-
- -
|
115
|
+
- - '>='
|
60
116
|
- !ruby/object:Gem::Version
|
61
117
|
version: '0'
|
62
118
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
119
|
requirements:
|
64
|
-
- -
|
120
|
+
- - '>='
|
65
121
|
- !ruby/object:Gem::Version
|
66
122
|
version: '0'
|
67
123
|
requirements: []
|
68
124
|
rubyforge_project:
|
69
|
-
rubygems_version: 2.1.
|
125
|
+
rubygems_version: 2.1.8
|
70
126
|
signing_key:
|
71
127
|
specification_version: 4
|
72
128
|
summary: ddbcli is an interactive command-line client of Amazon DynamoDB.
|
73
|
-
test_files:
|
129
|
+
test_files:
|
130
|
+
- spec/ddbcli_spec.rb
|
131
|
+
- spec/delete_spec.rb
|
132
|
+
- spec/insert_spec.rb
|
133
|
+
- spec/select_spec.rb
|
134
|
+
- spec/spec_helper.rb
|
135
|
+
- spec/update_spec.rb
|
data/README
DELETED
@@ -1,185 +0,0 @@
|
|
1
|
-
= ddbcli
|
2
|
-
|
3
|
-
== Description
|
4
|
-
|
5
|
-
ddbcli is an interactive command-line client of Amazon DynamoDB.
|
6
|
-
|
7
|
-
== Source Code
|
8
|
-
|
9
|
-
https://bitbucket.org/winebarrel/ddbcli
|
10
|
-
|
11
|
-
== Install
|
12
|
-
|
13
|
-
shell> gem install ddbcli
|
14
|
-
shell> export AWS_ACCESS_KEY_ID='...'
|
15
|
-
shell> export AWS_SECRET_ACCESS_KEY='...'
|
16
|
-
shell> export DDB_REGION=ap-northeast-1
|
17
|
-
shell> ddbcli -e 'show tables'
|
18
|
-
[
|
19
|
-
"employees"
|
20
|
-
]
|
21
|
-
|
22
|
-
shell> ddbcli -h
|
23
|
-
Usage: ddbcli [options]
|
24
|
-
-k, --access-key=ACCESS_KEY
|
25
|
-
-s, --secret-key=SECRET_KEY
|
26
|
-
-r, --region=REGION_OR_ENDPOINT
|
27
|
-
-e, --eval=COMMAND
|
28
|
-
-t, --timeout=SECOND
|
29
|
-
--import=TABLE,JSON_FILE
|
30
|
-
--consistent-read
|
31
|
-
--retry=NUM
|
32
|
-
--retry-interval=SECOND
|
33
|
-
--debug
|
34
|
-
-h, --help
|
35
|
-
...
|
36
|
-
shell> ddbcli # show prompt
|
37
|
-
|
38
|
-
== Use DynamoDB Local
|
39
|
-
|
40
|
-
ddbcli --uri localhost:8000
|
41
|
-
|
42
|
-
== Help
|
43
|
-
|
44
|
-
##### Query #####
|
45
|
-
|
46
|
-
SHOW TABLES [LIMIT num] [LIKE '...']
|
47
|
-
displays a table list
|
48
|
-
|
49
|
-
SHOW TABLE STATUS [LIKE '...']
|
50
|
-
displays table statues
|
51
|
-
|
52
|
-
SHOW REGIONS
|
53
|
-
displays a region list
|
54
|
-
|
55
|
-
SHOW CREATE TABLE table_name
|
56
|
-
displays a CREATE TABLE statement
|
57
|
-
|
58
|
-
CREATE TABLES table_name (
|
59
|
-
key_name {STRING|NUMBER|BINARY} HASH
|
60
|
-
[, key_name {STRING|NUMBER|BINARY} RANGE]
|
61
|
-
[, INDEX index1_name (attr1 {STRING|NUMBER|BINARY}) {ALL|KEYS_ONLY|INCLUDE (attr, ...)}
|
62
|
-
, INDEX index2_name (attr2 {STRING|NUMBER|BINARY}) {ALL|KEYS_ONLY|INCLUDE (attr, ...)}
|
63
|
-
, ...]
|
64
|
-
[, GLOBAL INDEX index1_name (hash_attr1 {STRING|NUMBER|BINARY} [, range_attr1 {STRING|NUMBER|BINARY}]) {ALL|KEYS_ONLY|INCLUDE (attr, ...)} [READ = num WRITE = num]
|
65
|
-
, GLOBAL INDEX index2_name (hash_attr2 {STRING|NUMBER|BINARY} [, range_attr2 {STRING|NUMBER|BINARY}]) {ALL|KEYS_ONLY|INCLUDE (attr, ...)} [READ = num WRITE = num]
|
66
|
-
, ...]
|
67
|
-
) READ = num WRITE = num
|
68
|
-
creates a table
|
69
|
-
|
70
|
-
CREATE TABLES table_name LIKE another_table_name [READ = num, WRITE = num]
|
71
|
-
creates a table like another table
|
72
|
-
|
73
|
-
DROP TABLE table_name
|
74
|
-
deletes a table
|
75
|
-
|
76
|
-
ALTER TABLE table_name READ = num, WRITE = num
|
77
|
-
updates the provisioned throughput
|
78
|
-
|
79
|
-
GET {*|attr1,attr2,...} FROM table_name WHERE key1 = '...' AND ...
|
80
|
-
gets items
|
81
|
-
|
82
|
-
INSERT INTO table_name (attr1, attr2, ...) VALUES ('val1', 'val2', ...), ('val3', 'val4', ...), ...
|
83
|
-
INSERT INTO table_name SELECT ...
|
84
|
-
INSERT INTO table_name SELECT ALL ...
|
85
|
-
creates items
|
86
|
-
|
87
|
-
UPDATE table_name {SET|ADD} attr1 = 'val1', ... WHERE key1 = '...' AND ...
|
88
|
-
UPDATE ALL table_name {SET|ADD} attr1 = 'val1', ... [WHERE attr1 = '...' AND ...] [LIMIT limit]
|
89
|
-
updates items
|
90
|
-
|
91
|
-
DELETE FROM table_name WHERE key1 = '...' AND ..
|
92
|
-
DELETE ALL FROM table_name WHERE [WHERE attr1 = '...' AND ...] [ORDER {ASC|DESC}] [LIMIT limit]
|
93
|
-
deletes items
|
94
|
-
|
95
|
-
SELECT {*|attr1,attr2,...|COUNT(*)} FROM table_name [USE INDEX (index_name)] [WHERE key1 = '...' AND ...] [ORDER {ASC|DESC}] [LIMIT limit]
|
96
|
-
SELECT ALL {*|attr1,attr2,...|COUNT(*)} FROM table_name [WHERE attr1 = '...' AND ...] [LIMIT limit]
|
97
|
-
SELECT segment/total_segments {*|attr1,attr2,...|COUNT(*)} FROM table_name [WHERE attr1 = '...' AND ...] [LIMIT limit]
|
98
|
-
queries using the Query/Scan action
|
99
|
-
see http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html
|
100
|
-
|
101
|
-
DESC[RIBE] table_name
|
102
|
-
displays information about the table
|
103
|
-
|
104
|
-
USE region_or_endpoint
|
105
|
-
changes an endpoint
|
106
|
-
|
107
|
-
NEXT
|
108
|
-
displays a continuation of a result
|
109
|
-
(NEXT statement is published after SELECT statement)
|
110
|
-
|
111
|
-
|
112
|
-
##### Type #####
|
113
|
-
|
114
|
-
String
|
115
|
-
'London Bridge is...', "is broken down..." ...
|
116
|
-
|
117
|
-
Number
|
118
|
-
10, 100, 0.3 ...
|
119
|
-
|
120
|
-
Binary
|
121
|
-
x'123456789abcd...', x"123456789abcd..." ...
|
122
|
-
|
123
|
-
Identifier
|
124
|
-
`ABCD...` or Non-keywords
|
125
|
-
|
126
|
-
Array
|
127
|
-
('String', 'String', ...), (1, 2, 3, ...)
|
128
|
-
|
129
|
-
|
130
|
-
##### Operator #####
|
131
|
-
|
132
|
-
Query (SELECT)
|
133
|
-
= | <= | < | >= | > | BEGINS_WITH | BETWEEN
|
134
|
-
see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-KeyConditions
|
135
|
-
|
136
|
-
Scan (SELECT ALL)
|
137
|
-
= | <> | != | <= | < | >= | > | IS NOT NULL | IS NULL | CONTAINS | NOT CONTAINS | BEGINS_WITH | IN | BETWEEN
|
138
|
-
see http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html#DDB-Scan-request-ScanFilter
|
139
|
-
|
140
|
-
|
141
|
-
##### Pass to Ruby/Shell #####
|
142
|
-
|
143
|
-
Ryby
|
144
|
-
query | ruby_script
|
145
|
-
|
146
|
-
ex) SELECT ALL * FROM employees WHERE gender = 'M' | birth_date.map {|i| Time.parse(i) };
|
147
|
-
[
|
148
|
-
"1957-09-16 00:00:00 +0900",
|
149
|
-
"1954-12-16 00:00:00 +0900",
|
150
|
-
"1964-05-23 00:00:00 +0900",
|
151
|
-
...
|
152
|
-
|
153
|
-
Shell
|
154
|
-
query ! shell_command
|
155
|
-
|
156
|
-
ex) SELECT ALL * FROM employees LIMIT 10 ! sort;
|
157
|
-
{"birth_date"=>"1957-09-16", "emp_no"=>452020,...
|
158
|
-
{"birth_date"=>"1963-07-14", "emp_no"=>16998, ...
|
159
|
-
{"birth_date"=>"1964-04-30", "emp_no"=>225407,...
|
160
|
-
...
|
161
|
-
|
162
|
-
|
163
|
-
##### Output to a file #####
|
164
|
-
|
165
|
-
Overwrite
|
166
|
-
SELECT ALL * FROM employees > 'foo.json';
|
167
|
-
|
168
|
-
Append
|
169
|
-
SELECT ALL * FROM employees >> 'foo.json';
|
170
|
-
|
171
|
-
|
172
|
-
##### Command #####
|
173
|
-
|
174
|
-
.help displays this message
|
175
|
-
.quit | .exit exits ddbcli
|
176
|
-
.consistent (true|false)? displays ConsistentRead parameter or changes it
|
177
|
-
.iteratable (true|false)? displays iteratable option or changes it
|
178
|
-
all results are displayed if true
|
179
|
-
.debug (true|false)? displays a debug status or changes it
|
180
|
-
.retry NUM? displays number of times of a retry or changes it
|
181
|
-
.retry_interval SECOND? displays a retry interval second or changes it
|
182
|
-
.timeout SECOND? displays a timeout second or changes it
|
183
|
-
.version displays a version
|
184
|
-
|
185
|
-
|