dynamoid 3.7.0 → 3.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +206 -238
- data/LICENSE.txt +2 -2
- data/README.md +43 -18
- data/lib/dynamoid/adapter.rb +5 -8
- data/lib/dynamoid/adapter_plugin/aws_sdk_v3/batch_get_item.rb +10 -1
- data/lib/dynamoid/adapter_plugin/aws_sdk_v3/item_updater.rb +20 -14
- data/lib/dynamoid/adapter_plugin/aws_sdk_v3/scan.rb +2 -1
- data/lib/dynamoid/adapter_plugin/aws_sdk_v3.rb +45 -52
- data/lib/dynamoid/associations/single_association.rb +28 -9
- data/lib/dynamoid/criteria/chain.rb +10 -6
- data/lib/dynamoid/criteria/key_fields_detector.rb +1 -1
- data/lib/dynamoid/criteria.rb +6 -7
- data/lib/dynamoid/dirty.rb +6 -9
- data/lib/dynamoid/document.rb +4 -10
- data/lib/dynamoid/fields.rb +16 -17
- data/lib/dynamoid/indexes.rb +45 -38
- data/lib/dynamoid/loadable.rb +6 -1
- data/lib/dynamoid/persistence/update_fields.rb +1 -1
- data/lib/dynamoid/persistence/upsert.rb +1 -1
- data/lib/dynamoid/persistence.rb +61 -18
- data/lib/dynamoid/undumping.rb +18 -0
- data/lib/dynamoid/validations.rb +6 -0
- data/lib/dynamoid/version.rb +1 -1
- data/lib/dynamoid.rb +1 -0
- metadata +40 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e1643f808e93716814d86080198b41cdf26991d9e75614f7d877561590b23d9
|
4
|
+
data.tar.gz: 453bb6e2c52d73cc94db42ba550fc621524ecba4cc4703445a00977d013b5c9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cc09e208f6d1be1bf953efda001cb006fa8a752830e192a418ba449807163761427dd443fac32ee3cb34cf690e613c3ff1e34a3cf0515d50f609319b71c69e7
|
7
|
+
data.tar.gz: 8ded4ae6a694788719dfc152adb6890f5cd18ff38acf99e422b824ed28c2d010e54caf05016af230d3cb49e5900618ced303148ebbc6ea5dce391dc838c278b2
|
data/CHANGELOG.md
CHANGED
@@ -1,100 +1,115 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
### Fixed
|
9
|
+
|
10
|
+
### Added
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
|
14
|
+
### Removed
|
15
|
+
|
16
|
+
## 3.8.0
|
17
|
+
### Fixed
|
18
|
+
* [#525](https://github.com/Dynamoid/dynamoid/pull/525) Don't mark an attribute as changed if new assigned value equals the old one (@a5-stable)
|
19
|
+
* Minor changes in the documentation:
|
20
|
+
* [#526](https://github.com/Dynamoid/dynamoid/pull/526) (@a5-stable)
|
21
|
+
* [#528](https://github.com/Dynamoid/dynamoid/pull/528) (@a5-stable)
|
22
|
+
* [#589](https://github.com/Dynamoid/dynamoid/pull/589) (@jrhoads)
|
23
|
+
* [#527](https://github.com/Dynamoid/dynamoid/pull/527) Fix `update_fields` and `upsert` methods - take into account the table-specific `timestamps` option for setting the `updated_at` attribute
|
24
|
+
(@oieioi)
|
25
|
+
* [#533](https://github.com/Dynamoid/dynamoid/pull/533) Allow attribute with custom type to be used as a partition or sort key of DynamoDB index (@rahul342)
|
26
|
+
* [#558](https://github.com/Dynamoid/dynamoid/pull/558) Change the way how a filename is derived from a model class name in a warning about using the Scan operation (@a5-stable)
|
27
|
+
* [#567](https://github.com/Dynamoid/dynamoid/pull/567) Fix `#reload` and mark a reloaded model as persisted
|
28
|
+
* [#573](https://github.com/Dynamoid/dynamoid/pull/573) Fix proxying of method calls with keyword arguments called on an association for Ruby 2.7 and above (@xeger)
|
29
|
+
* [#579](https://github.com/Dynamoid/dynamoid/pull/579) Fix `create_table` method when a `table_name` option passed in case a model has TTL setting enabled (@ta1kt0me)
|
30
|
+
* [#591](https://github.com/Dynamoid/dynamoid/pull/591) Multiple fixes:
|
31
|
+
* Fix `#update` and `#update!` - take into account the table-specific `timestamps` option for setting the `updated_at` attribute
|
32
|
+
* Fix `#update_attribute` - skip validation
|
33
|
+
* Return `self` in some public methods to enable methods chaining
|
34
|
+
* [#601](https://github.com/Dynamoid/dynamoid/pull/601) Fix `#first` and `#pluck` methods: do not mutate query parameters and affect other query methods.
|
35
|
+
|
36
|
+
### Added
|
37
|
+
* [#531](https://github.com/Dynamoid/dynamoid/pull/531) Run `before_update` and `after_update` callbacks at saving a model (@a5-stable)
|
38
|
+
* [#536](https://github.com/Dynamoid/dynamoid/pull/536) Modernization
|
39
|
+
* Support for Ruby 3.1
|
40
|
+
* Support for Rails 7.0
|
41
|
+
* Keep a Changelog Format
|
42
|
+
|
43
|
+
## 3.7.1 / 2021-06-30
|
44
|
+
### Fixed
|
45
|
+
* [#484](https://github.com/Dynamoid/dynamoid/pull/484) Fix model deletion - update cached foreign keys in associated models when delete a model
|
46
|
+
* [#492](https://github.com/Dynamoid/dynamoid/pull/492) Fix using `:date` field as an index hash/range key (@yoshida-eth0)
|
47
|
+
* [#503](https://github.com/Dynamoid/dynamoid/pull/503) Fix explicit forcing index with `#with_index` method when perform Scan operation (@bmalinconico)
|
48
|
+
* [#511](https://github.com/Dynamoid/dynamoid/pull/511) Fix `BatchGetItem` operation when partial result returned (so there are unprocessed keys) and table has a range key. The fix affects `.find_all` method only (@Bajena)
|
49
|
+
|
50
|
+
## 3.7.0 / 2021-02-02
|
51
|
+
### Added
|
12
52
|
* [#476](https://github.com/Dynamoid/dynamoid/pull/476) Added `#with_index` method to force an index in query (@bmalinconico)
|
13
53
|
* [#481](https://github.com/Dynamoid/dynamoid/pull/481) Added `alias` option to the `field` method to declare a field alias and use more conventional name to set and get value
|
14
54
|
|
15
|
-
|
16
|
-
|
55
|
+
### Changed
|
17
56
|
* [#482](https://github.com/Dynamoid/dynamoid/pull/482) Support Ruby 3.0 and Rails 6.1
|
18
57
|
* [#461](https://github.com/Dynamoid/dynamoid/pull/461) Allow to delete item attribute with `#update` method (@jkirsteins)
|
19
58
|
* [#463](https://github.com/Dynamoid/dynamoid/pull/463) Raise `UnknownAttribute` exception when specified not declared attribute name (@AlexGascon)
|
20
59
|
|
21
|
-
|
22
|
-
|
60
|
+
### Fixed
|
23
61
|
* [#480](https://github.com/Dynamoid/dynamoid/pull/480) Repair `.consistent`/`.delete_all`/`.destroy_all` calls directly on a model class
|
24
62
|
* [#484](https://github.com/Dynamoid/dynamoid/pull/484) Fix broken foreign keys after model deleting (@kkan)
|
25
|
-
*
|
26
|
-
|
27
|
-
---
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
# 3.6.0 / 2020-07-13
|
32
|
-
|
33
|
-
|
34
|
-
## Features
|
63
|
+
* Fixed in Readme.md: [#470](https://github.com/Dynamoid/dynamoid/pull/470) (@rromanchuk), [#473](https://github.com/Dynamoid/dynamoid/pull/473) (@Rulikkk)
|
35
64
|
|
65
|
+
## 3.6.0 / 2020-07-13
|
66
|
+
### Added
|
36
67
|
* [#458](https://github.com/Dynamoid/dynamoid/pull/458) Added `binary` field type
|
37
68
|
* [#459](https://github.com/Dynamoid/dynamoid/pull/459) Added `log_formatter` config option and changed default logging format
|
38
69
|
|
39
|
-
|
40
|
-
|
70
|
+
### Changed
|
41
71
|
* [#423](https://github.com/Dynamoid/dynamoid/pull/423) Added warning when generated for a field methods override existing ones
|
42
72
|
* [#429](https://github.com/Dynamoid/dynamoid/pull/429) Added `raise_error` option for `find` method
|
43
73
|
* [#440](https://github.com/Dynamoid/dynamoid/pull/440) Optimized performance of `first` method when there are only conditions on key attribute in a query (@mrkamel)
|
44
74
|
* [#445](https://github.com/Dynamoid/dynamoid/pull/445) Support `limit` parameter in `first` method (@mrkamel)
|
45
|
-
* [#450](https://github.com/Dynamoid/dynamoid/pull/450) Got rid of `null-logger` gem to make Dynamoid dependencies license suitable for commercial use (@yakjuly)
|
46
75
|
* [#454](https://github.com/Dynamoid/dynamoid/pull/454) Added block argument to `create`/`create!` methods
|
47
76
|
* [#456](https://github.com/Dynamoid/dynamoid/pull/456) Detect when `find` method requires a range key argument and raise `Dynamoid::Errors::MissingRangeKey` exception if it's missing
|
48
77
|
* YARD documentation:
|
49
78
|
* added missing documentation so now all the public methods are documented
|
50
79
|
* hid all the private methods and classes
|
51
80
|
|
52
|
-
|
81
|
+
### Removed
|
82
|
+
* [#450](https://github.com/Dynamoid/dynamoid/pull/450) Got rid of `null-logger` gem to make Dynamoid dependencies license suitable for commercial use (@yakjuly)
|
53
83
|
|
84
|
+
### Fixed
|
54
85
|
* [#425](https://github.com/Dynamoid/dynamoid/pull/425) Fixed typos in the README.md file (@omarsotillo)
|
55
86
|
* [#432](https://github.com/Dynamoid/dynamoid/pull/432) Support tables that use "hash_key" as their partition key name (@remomueller)
|
56
87
|
* [#434](https://github.com/Dynamoid/dynamoid/pull/434) Support tables that have attribute with name "range_value"
|
57
88
|
* [#453](https://github.com/Dynamoid/dynamoid/pull/453) Fixed issue with using `type` attribute as a GSI hash key
|
58
89
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
#
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
*
|
68
|
-
*
|
69
|
-
*
|
70
|
-
|
71
|
-
|
72
|
-
*
|
73
|
-
*
|
74
|
-
*
|
75
|
-
* Fix: [#420](https://github.com/Dynamoid/dynamoid/pull/420) Fixed `#persisted?` for deleted/destroyed models
|
76
|
-
|
77
|
-
## Improvements:
|
78
|
-
* Improvement: [#416](https://github.com/Dynamoid/dynamoid/pull/416) Improved speed of Adapter's `truncate` method. It now uses `#batch_delete_item` method (@TheSmartnik)
|
79
|
-
* Improvement: [#421](https://github.com/Dynamoid/dynamoid/pull/421) Added `touch: false` option of the #save method
|
80
|
-
* Improvement: [#423](https://github.com/Dynamoid/dynamoid/pull/423) Added warning when generated for a field methods override existing ones
|
81
|
-
|
82
|
-
---
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
# 3.4.1
|
90
|
+
## 3.5.0 / 2020-04-04
|
91
|
+
### Added
|
92
|
+
* [#405](https://github.com/Dynamoid/dynamoid/pull/405) Added `update!` class method (@UrsaDK)
|
93
|
+
* [#408](https://github.com/Dynamoid/dynamoid/pull/408) Added `ActiveSupport` load hook on `Dynamoid` load (@aaronmallen)
|
94
|
+
* [#422](https://github.com/Dynamoid/dynamoid/pull/422) Added `.pluck` method
|
95
|
+
|
96
|
+
### Fixed
|
97
|
+
* [#410](https://github.com/Dynamoid/dynamoid/pull/410) Fixed creating GSI when table uses on-demand capacity provisioning (@icy-arctic-fox)
|
98
|
+
* [#414](https://github.com/Dynamoid/dynamoid/pull/414) Fixed lazy table creation
|
99
|
+
* [#415](https://github.com/Dynamoid/dynamoid/pull/415) Fixed RubyDoc comment (@walkersumida)
|
100
|
+
* [#420](https://github.com/Dynamoid/dynamoid/pull/420) Fixed `#persisted?` for deleted/destroyed models
|
101
|
+
|
102
|
+
### Changed
|
103
|
+
* [#416](https://github.com/Dynamoid/dynamoid/pull/416) Improved speed of Adapter's `truncate` method. It now uses `#batch_delete_item` method (@TheSmartnik)
|
104
|
+
* [#421](https://github.com/Dynamoid/dynamoid/pull/421) Added `touch: false` option of the #save method
|
105
|
+
* [#423](https://github.com/Dynamoid/dynamoid/pull/423) Added warning when generated for a field methods override existing ones
|
87
106
|
|
88
|
-
##
|
107
|
+
## 3.4.1
|
108
|
+
### Fixed
|
89
109
|
* Fix: [#398](https://github.com/Dynamoid/dynamoid/pull/398) Fix broken configuration
|
90
110
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
# 3.4.0
|
96
|
-
|
97
|
-
## Features
|
111
|
+
## 3.4.0
|
112
|
+
### Added
|
98
113
|
* Feature: [#386](https://github.com/Dynamoid/dynamoid/pull/386) Disable timestamps fields on a table level with new
|
99
114
|
table option `timestamps`
|
100
115
|
* Feature: [#387](https://github.com/Dynamoid/dynamoid/pull/387) Add TTL support with table option `expires`
|
@@ -102,137 +117,102 @@
|
|
102
117
|
option `credentials` (@emmajhyde)
|
103
118
|
* Feature: [#397](https://github.com/Dynamoid/dynamoid/pull/397) Configure on-demand table capacity mode with `capacity_mode` option
|
104
119
|
|
105
|
-
|
120
|
+
### Changed
|
106
121
|
* Improvement: [#388](https://github.com/Dynamoid/dynamoid/pull/388) Minor memory optimization - don't allocate excessive
|
107
122
|
hash (@arjes)
|
108
123
|
|
109
|
-
|
110
|
-
|
124
|
+
### Fixed
|
111
125
|
* Fix: [#382](https://github.com/Dynamoid/dynamoid/pull/382) Fixed deprecation warning about `Module#parent_name` in Rails 6 (@tmandke)
|
112
126
|
* Fix: Typos in Readme.md (@romeuhcf)
|
113
127
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
*
|
127
|
-
*
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
*
|
132
|
-
*
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
*
|
144
|
-
* Feature: [#354](https://github.com/Dynamoid/dynamoid/pull/354) Add `map` field type
|
145
|
-
|
146
|
-
## Improvements
|
147
|
-
* Improvement: [#340](https://github.com/Dynamoid/dynamoid/pull/340) Improve selecting more optimal GSI for Query operation - choose GSI with sort key if it's used in criteria (@ryz310)
|
148
|
-
* Improvement: [#351](https://github.com/Dynamoid/dynamoid/pull/351) Add warnings about nonexistent fields in `where` conditions
|
149
|
-
* Improvement: [#352](https://github.com/Dynamoid/dynamoid/pull/352) Add warning about skipped conditions
|
150
|
-
* Improvement: [#356](https://github.com/Dynamoid/dynamoid/pull/356) Simplify requiring Rake tasks in non-Rails application
|
151
|
-
* Improvement: Readme.md. Minor improvements and fixes (@cabello)
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
# 3.1.0
|
156
|
-
|
157
|
-
## Improvements
|
158
|
-
* Feature: [#302](https://github.com/Dynamoid/dynamoid/pull/302) Add methods similar to `ActiveRecord::AttributeMethods::BeforeTypeCast`:
|
128
|
+
## 3.3.0
|
129
|
+
### Added
|
130
|
+
* [#374](https://github.com/Dynamoid/dynamoid/pull/374) Add `#project` query method to load only specified fields
|
131
|
+
|
132
|
+
### Changed
|
133
|
+
* [#359](https://github.com/Dynamoid/dynamoid/pull/359) Add support of `NULL` and `NOT_NULL` operators
|
134
|
+
* [#360](https://github.com/Dynamoid/dynamoid/pull/360) Add `store_attribute_with_nil_value` config option
|
135
|
+
* [#368](https://github.com/Dynamoid/dynamoid/pull/368) Support Rails 6 (RC1)
|
136
|
+
|
137
|
+
### Fixed
|
138
|
+
* [#357](https://github.com/Dynamoid/dynamoid/pull/357) Fix synchronous table creation issue
|
139
|
+
* [#362](https://github.com/Dynamoid/dynamoid/pull/362) Fix issue with selecting Global Secondary Index (@atyndall)
|
140
|
+
* [#368](https://github.com/Dynamoid/dynamoid/pull/368) Repair `#previous_changes` method from Dirty API
|
141
|
+
* [#373](https://github.com/Dynamoid/dynamoid/pull/373) Fix threadsafety of loading `Dynamoid::Adapter` (@tsub)
|
142
|
+
|
143
|
+
## 3.2.0
|
144
|
+
### Added
|
145
|
+
* [#341](https://github.com/Dynamoid/dynamoid/pull/341), [#342](https://github.com/Dynamoid/dynamoid/pull/342) Add `find_by_pages` method to provide access to DynamoDB query result pagination mechanism (@bmalinconico, @arjes)
|
146
|
+
* [#354](https://github.com/Dynamoid/dynamoid/pull/354) Add `map` field type
|
147
|
+
|
148
|
+
### Changed
|
149
|
+
* [#340](https://github.com/Dynamoid/dynamoid/pull/340) Improve selecting more optimal GSI for Query operation - choose GSI with sort key if it's used in criteria (@ryz310)
|
150
|
+
* [#351](https://github.com/Dynamoid/dynamoid/pull/351) Add warnings about nonexistent fields in `where` conditions
|
151
|
+
* [#352](https://github.com/Dynamoid/dynamoid/pull/352) Add warning about skipped conditions
|
152
|
+
* [#356](https://github.com/Dynamoid/dynamoid/pull/356) Simplify requiring Rake tasks in non-Rails application
|
153
|
+
* Readme.md. Minor improvements and Fixed (@cabello)
|
154
|
+
|
155
|
+
## 3.1.0
|
156
|
+
### Added
|
157
|
+
* [#302](https://github.com/Dynamoid/dynamoid/pull/302) Add methods similar to `ActiveRecord::AttributeMethods::BeforeTypeCast`:
|
159
158
|
* method `attributes_before_type_cast`
|
160
159
|
* method `read_attribte_before_type_cast`
|
161
160
|
* methods `<name>_before_type_cast`
|
162
|
-
*
|
163
|
-
*
|
164
|
-
*
|
161
|
+
* [#303](https://github.com/Dynamoid/dynamoid/pull/303) Add `#update_attributes!` method
|
162
|
+
* [#304](https://github.com/Dynamoid/dynamoid/pull/304) Add `inheritance_field` option for `Document.table` method to specify column name for supporting STI and storing class name
|
163
|
+
* [#305](https://github.com/Dynamoid/dynamoid/pull/305) Add increment/decrement methods:
|
165
164
|
* `#increment`
|
166
165
|
* `#increment!`
|
167
166
|
* `#decrement`
|
168
167
|
* `#decrement!`
|
169
168
|
* `.inc`
|
170
|
-
*
|
171
|
-
*
|
172
|
-
*
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
*
|
179
|
-
*
|
180
|
-
*
|
181
|
-
*
|
182
|
-
*
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
*
|
191
|
-
*
|
192
|
-
*
|
193
|
-
*
|
194
|
-
*
|
195
|
-
*
|
196
|
-
*
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
*
|
201
|
-
|
202
|
-
|
203
|
-
* Maintenance: [#281](https://github.com/Dynamoid/Dynamoid/pull/281) Deprecate dynamic finders, `find_all`, `find_by_id`, `find_by_composite_key`, `find_all_by_composite_key` and `find_all_by_secondary_index`
|
204
|
-
* Improvement: [#285](https://github.com/Dynamoid/Dynamoid/pull/285) Set timestamps (`created_at` and `updated_at`) in `upsert`, `update_fields`, `import` and `update` methods
|
205
|
-
* Improvement: [#286](https://github.com/Dynamoid/Dynamoid/pull/286) Disable scan warning when intentionally loading all items from a collection (@knovoselic)
|
206
|
-
|
207
|
-
## Fixes
|
208
|
-
|
169
|
+
* [#307](https://github.com/Dynamoid/dynamoid/pull/307) Allow to declare type of elements in `array`/`set` fields with `of` option. Only scalar types are supported as well as custom types
|
170
|
+
* [#312](https://github.com/Dynamoid/dynamoid/pull/312) Add Ability to specify network timeout connection settings (@lulu-ulul)
|
171
|
+
* [#313](https://github.com/Dynamoid/dynamoid/pull/313) Add support for backoff in scan and query (@bonty)
|
172
|
+
|
173
|
+
### Changed
|
174
|
+
* [#314](https://github.com/Dynamoid/dynamoid/pull/314) Re-implement `count` for `where`-chain query efficiently. So now `where(...).count` doesn't load all the documents, just statistics
|
175
|
+
|
176
|
+
### Fixed
|
177
|
+
* [#298](https://github.com/Dynamoid/dynamoid/pull/298) Fix `raw` field storing when value is a Hash with non-string keys
|
178
|
+
* [#299](https://github.com/Dynamoid/dynamoid/pull/299) Fix `raw` fields - skip empty strings and sets
|
179
|
+
* [#309](https://github.com/Dynamoid/dynamoid/pull/309) Fix loading of a document that contains not declared in model class fields
|
180
|
+
* [#310](https://github.com/Dynamoid/dynamoid/pull/310) Fix `Adapter#list_tables` method to return names of all tables, not just first page (@knovoselic)
|
181
|
+
* [#311](https://github.com/Dynamoid/dynamoid/pull/311) Fix `consistent_read` option of `.find` (@kokuyouwind)
|
182
|
+
* [#319](https://github.com/Dynamoid/dynamoid/pull/319) Repair consistent reading for `find_all`
|
183
|
+
* [#317](https://github.com/Dynamoid/dynamoid/pull/317) Fix `create_tables` rake task
|
184
|
+
|
185
|
+
## 3.0.0
|
186
|
+
### Changed
|
187
|
+
* BREAKING [#267](https://github.com/Dynamoid/dynamoid/pull/267) Upgrade AWS SDK to V3
|
188
|
+
* BREAKING [#268](https://github.com/Dynamoid/dynamoid/pull/268) Drop support of old Ruby versions. Support Ruby since 2.3 version
|
189
|
+
* BREAKING [#268](https://github.com/Dynamoid/dynamoid/pull/268) Drop support of old Rails versions. Support Rails since 4.2 version
|
190
|
+
* BREAKING [#278](https://github.com/Dynamoid/dynamoid/pull/278) Add type casting for finders (`find`, `find_by_id` and `find_all`)
|
191
|
+
* BREAKING [#279](https://github.com/Dynamoid/dynamoid/pull/279) Change default value of `application_timezone` config option from `:local` to `:utc`
|
192
|
+
* BREAKING [#288](https://github.com/Dynamoid/dynamoid/pull/288) Add `store_boolean_as_native` config option and set it to `true` by default. So all boolean fields are stored not as string `'t'` and `'f'` but as native boolean values now
|
193
|
+
* BREAKING [#289](https://github.com/Dynamoid/dynamoid/pull/289) Add `dynamodb_timezone` config option and set it to `:utc` by default. So now all `date` and `datetime` fields stored in string format will be converted to UTC time zone by default
|
194
|
+
* [#261](https://github.com/Dynamoid/Dynamoid/pull/261) Improve documentation (@walkersumida)
|
195
|
+
* [#264](https://github.com/Dynamoid/Dynamoid/pull/264) Improve documentation (@xbx)
|
196
|
+
* [#278](https://github.com/Dynamoid/Dynamoid/pull/278) Add Rails-like type casting
|
197
|
+
* [#281](https://github.com/Dynamoid/Dynamoid/pull/281) Deprecate dynamic finders, `find_all`, `find_by_id`, `find_by_composite_key`, `find_all_by_composite_key` and `find_all_by_secondary_index`
|
198
|
+
* [#285](https://github.com/Dynamoid/Dynamoid/pull/285) Set timestamps (`created_at` and `updated_at`) in `upsert`, `update_fields`, `import` and `update` methods
|
199
|
+
* [#286](https://github.com/Dynamoid/Dynamoid/pull/286) Disable scan warning when intentionally loading all items from a collection (@knovoselic)
|
200
|
+
|
201
|
+
### Fixed
|
209
202
|
* Bug: [#275](https://github.com/Dynamoid/Dynamoid/pull/275) Fix custom type serialization/deserialization
|
210
203
|
* Bug: [#283](https://github.com/Dynamoid/Dynamoid/pull/283) Fix using string formats for partition and sort keys of `date`/`datetime` type
|
211
204
|
* Bug: [#283](https://github.com/Dynamoid/Dynamoid/pull/283) Fix type declaration of custom type fields. Returned by `.dynamoid_field_type` value is treated as Dynamoid's type now
|
212
205
|
* Bug: [#287](https://github.com/Dynamoid/Dynamoid/pull/287) Fix logging disabling (@ghiculescu)
|
213
206
|
|
214
|
-
|
215
|
-
|
216
|
-
## Breaking
|
217
|
-
|
218
|
-
* N/A
|
219
|
-
|
220
|
-
## Improvements
|
221
|
-
|
207
|
+
## 2.2.0
|
208
|
+
### Changed
|
222
209
|
* Feature: [#256](https://github.com/Dynamoid/Dynamoid/pull/256) Support Rails 5.2 (@andrykonchin)
|
223
210
|
|
224
|
-
|
225
|
-
|
211
|
+
### Fixed
|
226
212
|
* Bug: [#255](https://github.com/Dynamoid/Dynamoid/pull/255) Fix Vagrant RVM configuration and upgrade to Ruby 2.4.1 (@richardhsu)
|
227
213
|
|
228
|
-
|
229
|
-
|
230
|
-
## Breaking
|
231
|
-
|
232
|
-
* N/A
|
233
|
-
|
234
|
-
## Improvements
|
235
|
-
|
214
|
+
## 2.1.0
|
215
|
+
### Changed
|
236
216
|
* Feature: [#221](https://github.com/Dynamoid/Dynamoid/pull/221) Add field declaration option `of` to specify the type of `set` elements (@pratik60)
|
237
217
|
* Feature: [#223](https://github.com/Dynamoid/Dynamoid/pull/223) Add field declaration option `store_as_string` to store `datetime` as ISO-8601 formatted strings (@william101)
|
238
218
|
* Feature: [#228](https://github.com/Dynamoid/Dynamoid/pull/228) Add field declaration option `store_as_string` to store `date` as ISO-8601 formatted strings (@andrykonchin)
|
@@ -245,8 +225,7 @@
|
|
245
225
|
* added `constant` and `exponential` built-in backoff strategies
|
246
226
|
* `.find_all` and `.import` support new backoff options
|
247
227
|
|
248
|
-
|
249
|
-
|
228
|
+
### Fixed
|
250
229
|
* Bug: [#216](https://github.com/Dynamoid/Dynamoid/pull/216) Fix global index detection in queries with conditions other than equal (@andrykonchin)
|
251
230
|
* Bug: [#224](https://github.com/Dynamoid/Dynamoid/pull/224) Fix how `contains` operator works with `set` and `array` field types (@andrykonchin)
|
252
231
|
* Bug: [#225](https://github.com/Dynamoid/Dynamoid/pull/225) Fix equal conditions for `array` fields (@andrykonchin)
|
@@ -257,82 +236,77 @@
|
|
257
236
|
* Bug: [#250](https://github.com/Dynamoid/Dynamoid/pull/250) Update outdated warning message about inefficient query and missing indices (@andrykonchin)
|
258
237
|
* Bug: [252](https://github.com/Dynamoid/Dynamoid/pull/252) Don't loose nanoseconds when store DateTime as float number
|
259
238
|
|
260
|
-
|
261
|
-
|
262
|
-
## Breaking
|
263
|
-
|
239
|
+
## 2.0.0
|
264
240
|
Breaking changes in this release generally bring Dynamoid behavior closer to the Rails-way.
|
265
241
|
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
*
|
275
|
-
*
|
276
|
-
|
277
|
-
*
|
278
|
-
*
|
279
|
-
*
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
*
|
242
|
+
### Added
|
243
|
+
* [#199](https://github.com/Dynamoid/Dynamoid/pull/199) Added `Document.import` method (@andrykonchin)
|
244
|
+
* [#212](https://github.com/Dynamoid/Dynamoid/pull/212) Add foreign_key option (@andrykonchin)
|
245
|
+
* [#213](https://github.com/Dynamoid/Dynamoid/pull/213) Support Boolean raw type (@andrykonchin)
|
246
|
+
|
247
|
+
### Changed
|
248
|
+
* BREAKING [#186](https://github.com/Dynamoid/Dynamoid/pull/186) Consistent behavior for `Model.where({}).all` (@andrykonchin)
|
249
|
+
* <= 1.3.x behaviour -
|
250
|
+
* load lazily if user specified batch size
|
251
|
+
* load all collection into memory otherwise
|
252
|
+
* New behaviour -
|
253
|
+
* always return lazy evaluated collection
|
254
|
+
* It means Model.where({}).all returns Enumerator instead of Array.
|
255
|
+
* If you need Array interface you have to convert collection to Array manually with to_a method call
|
256
|
+
* BREAKING [#195](https://github.com/Dynamoid/Dynamoid/pull/195) Failed `#find` returns error (@andrykonchin)
|
257
|
+
* <= 1.3.x behaviour - find returns nil or smaller array.
|
258
|
+
* New behaviour - it raises RecordNotFound if one or more records can not be found for the requested ids
|
259
|
+
* BREAKING [#196](https://github.com/Dynamoid/Dynamoid/pull/196) Return value of `#save` (@andrykonchin)
|
260
|
+
* <= 1.3.x behaviour - save returns self if model is saved successfully
|
261
|
+
* New behaviour - it returns true
|
262
|
+
* [#185](https://github.com/Dynamoid/Dynamoid/pull/185) `where`, finders and friends take into account STI (single table inheritance) now (@andrykonchin)
|
284
263
|
* query will return items of the model class and all subclasses
|
285
|
-
*
|
264
|
+
* [#190](https://github.com/Dynamoid/Dynamoid/pull/190) Allow passing options to range when defining attributes of the document (@richardhsu)
|
286
265
|
* Allows for serialized fields and passing the serializer option.
|
287
|
-
*
|
266
|
+
* [#198](https://github.com/Dynamoid/Dynamoid/pull/198) Enhanced `#create` and `#create!` to allow multiple document creation like `#import` (@andrykonchin)
|
288
267
|
* `User.create([{name: 'Josh'}, {name: 'Nick'}])`
|
289
|
-
*
|
290
|
-
*
|
291
|
-
* Rename: [#205](https://github.com/Dynamoid/Dynamoid/pull/205) `Chain#destroy_all` as `Chain#delete_all`, to better match Rails conventions when no callbacks are run (@andrykonchin)
|
268
|
+
* [#205](https://github.com/Dynamoid/Dynamoid/pull/205) Use batch deletion via `batch_write_item` for `delete_all` (@andrykonchin)
|
269
|
+
* [#205](https://github.com/Dynamoid/Dynamoid/pull/205) Rename `Chain#destroy_all` as `Chain#delete_all`, to better match Rails conventions when no callbacks are run (@andrykonchin)
|
292
270
|
* kept the old name as an alias, for backwards compatibility
|
293
|
-
*
|
294
|
-
*
|
295
|
-
* Feature: [#212](https://github.com/Dynamoid/Dynamoid/pull/212) Add foreign_key option (@andrykonchin)
|
296
|
-
* Feature: [#213](https://github.com/Dynamoid/Dynamoid/pull/213) Support Boolean raw type (@andrykonchin)
|
271
|
+
* [#207](https://github.com/Dynamoid/Dynamoid/pull/207) Added slicing by 25 requests in #batch_write_item (@andrykonchin)
|
272
|
+
* [#211](https://github.com/Dynamoid/Dynamoid/pull/211) Improved Vagrant setup for testing (@richardhsu)
|
297
273
|
* Improved Documentation (@pboling, @andrykonchin)
|
298
274
|
|
299
|
-
|
300
|
-
|
301
|
-
*
|
302
|
-
* Bug: [#202](https://github.com/Dynamoid/Dynamoid/pull/202) Fix several issues with associations (@andrykonchin)
|
275
|
+
### Fixed
|
276
|
+
* [#191](https://github.com/Dynamoid/Dynamoid/pull/191), [#192](https://github.com/Dynamoid/Dynamoid/pull/192) Support lambdas as fix for value types were not able to be used as default values (@andrykonchin)(@richardhsu)
|
277
|
+
* [#202](https://github.com/Dynamoid/Dynamoid/pull/202) Fix several issues with associations (@andrykonchin)
|
303
278
|
* setting `nil` value raises an exception
|
304
279
|
* document doesn't keep assigned model and loads it from the storage
|
305
280
|
* delete call doesn't update cached ids of associated models
|
306
281
|
* fix clearing old `has_many` association while add model to new `has_many` association
|
307
|
-
*
|
282
|
+
* [#204](https://github.com/Dynamoid/Dynamoid/pull/204) Fixed issue where `Document.where(:"id.in" => [])` would do `Query` operation instead of `Scan` (@andrykonchin)
|
308
283
|
* Fixed `Chain#key_present?`
|
309
|
-
*
|
284
|
+
* [#205](https://github.com/Dynamoid/Dynamoid/pull/205) Fixed `delete_all` (@andrykonchin)
|
310
285
|
* Fixed exception when makes scan and sort key is declared in model
|
311
286
|
* Fixed exception when makes scan and any condition is specified in where clause (like Document.where().delete_all)
|
312
287
|
* Fixed exception when makes query and sort key isn't declared in model
|
313
|
-
*
|
314
|
-
|
315
|
-
# 1.3.4
|
316
|
-
|
317
|
-
## Improvements
|
288
|
+
* [#207](https://github.com/Dynamoid/Dynamoid/pull/207) Fixed `#delete` method for case `adapter.delete(table_name, [1, 2, 3], range_key: 1)` (@andrykonchin)
|
318
289
|
|
290
|
+
## 1.3.4
|
291
|
+
### Added
|
319
292
|
* Added `Chain#last` method (@andrykonchin)
|
320
293
|
* Added `date` field type (@andrykonchin)
|
321
294
|
* Added `application_timezone` config option (@andrykonchin)
|
322
|
-
* Allow consistent reading for Scan request (@andrykonchin)
|
323
|
-
* Use Query instead of Scan if there are no conditions for sort (range) key in where clause (@andrykonchin)
|
324
295
|
* Support condition operators for non-key fields for Query request (@andrykonchin)
|
325
296
|
* Support condition operators for Scan request (@andrykonchin)
|
326
297
|
* Support additional operators `in`, `contains`, `not_contains` (@andrykonchin)
|
327
298
|
* Support type casting in `where` clause (@andrykonchin)
|
328
|
-
*
|
299
|
+
* Allow consistent reading for Scan request (@andrykonchin)
|
329
300
|
* Add `Chain#scan_limit` (@richardhsu)
|
330
301
|
* Support batch loading for Query requests (@richardhsu)
|
331
302
|
* Support querying Global/Local Secondary Indices in `where` clause (@richardhsu)
|
332
|
-
* Only query on GSI if projects all attributes in `where` clause (@richardhsu)
|
333
303
|
|
334
|
-
|
304
|
+
### Changed
|
305
|
+
* Use Query instead of Scan if there are no conditions for sort (range) key in where clause (@andrykonchin)
|
306
|
+
* Rename `Chain#eval_limit` to `#record_limit` (@richardhsu)
|
307
|
+
* Only query on GSI if projects all attributes in `where` clause (@richardhsu)
|
335
308
|
|
309
|
+
### Fixed
|
336
310
|
* Fix incorrect applying of default field value (#36 and #117, @andrykonchin)
|
337
311
|
* Fix sync table creation/deletion (#160, @mirokuxy)
|
338
312
|
* Allow to override document timestamps (@andrykonchin)
|
@@ -343,17 +317,16 @@ Breaking changes in this release generally bring Dynamoid behavior closer to the
|
|
343
317
|
* Fix paginating for Scan requests (@richardhsu)
|
344
318
|
* Fix `batch_get_item` method call for integer partition key (@mudasirraza)
|
345
319
|
|
346
|
-
|
347
|
-
|
320
|
+
## 1.3.3
|
321
|
+
### Added
|
348
322
|
* Allow configuration of the Dynamoid models directory, as not everyone keeps non AR models in app/models
|
349
323
|
- Dynamoid::Config.models_dir = "app/whatever"
|
350
324
|
|
351
|
-
|
352
|
-
|
325
|
+
## 1.3.2
|
326
|
+
### Fixed
|
353
327
|
* Fix migrations by stopping the loading of all rails models outside the rails env.
|
354
328
|
|
355
|
-
|
356
|
-
|
329
|
+
## 1.3.1
|
357
330
|
* Implements #135
|
358
331
|
* dump values for :integer, :string, :boolean fields passed to where query
|
359
332
|
* e.g. You can search for booleans with any of: `[true, false, "t", "f", "true", "false"]`
|
@@ -366,8 +339,7 @@ Breaking changes in this release generally bring Dynamoid behavior closer to the
|
|
366
339
|
* Added wwtd and appraisal to spec suite for easier verification of the compatibility matrix
|
367
340
|
* Support is now officially Ruby 2.0+, (including JRuby 9000) and Rails 4.0+
|
368
341
|
|
369
|
-
|
370
|
-
|
342
|
+
## 1.3.0
|
371
343
|
* Fixed specs (@AlexNisnevich & @pboling)
|
372
344
|
* Fix `blank?` and `present?` behavior for single associations (#110, @AlexNisnevich & @bayesimpact)
|
373
345
|
* Support BatchGet for more than 100 items (#80, @getninjas)
|
@@ -380,8 +352,7 @@ Breaking changes in this release generally bring Dynamoid behavior closer to the
|
|
380
352
|
* Better support for raw datatype (#104, @OpenGov)
|
381
353
|
* Fix associative tables with non-id primary keys (#86, @everett-wetchler)
|
382
354
|
|
383
|
-
|
384
|
-
|
355
|
+
## 1.2.1
|
385
356
|
* Remove accidental Gemfile.lock; fix .gitignore (#95, @pboling)
|
386
357
|
* Allow options to put_items (#95, @alexperto)
|
387
358
|
* Support range key in secondary index queries (#95, @pboling)
|
@@ -389,8 +360,7 @@ Breaking changes in this release generally bring Dynamoid behavior closer to the
|
|
389
360
|
* Support for batch_delete_item API (#95, @pboling)
|
390
361
|
* Support for batch_write_item API (#95, @alexperto)
|
391
362
|
|
392
|
-
|
393
|
-
|
363
|
+
## 1.2.0
|
394
364
|
* Add create_table_syncronously, and sync: option to regular create_table (@pboling)
|
395
365
|
* make required for tables created with secondary indexes
|
396
366
|
* Expose and fix truncate method on adapter (#52, @pcorpet)
|
@@ -407,13 +377,11 @@ Breaking changes in this release generally bring Dynamoid behavior closer to the
|
|
407
377
|
* Fix query attribute behavior for booleans (#35, @amirmanji)
|
408
378
|
* Ignore unknown fields on model initialize (PR #33, @sumocoder)
|
409
379
|
|
410
|
-
|
411
|
-
|
380
|
+
## 1.1.0
|
412
381
|
* Added support for optimistic locking on delete (PR #29, @sumocoder)
|
413
382
|
* upgrade concurrent-ruby requirement to 1.0 (PR #31, @keithmgould)
|
414
383
|
|
415
|
-
|
416
|
-
|
384
|
+
## 1.0.0
|
417
385
|
* Add support for AWS SDK v2.
|
418
386
|
* Add support for custom class type for fields.
|
419
387
|
* Remove partitioning support.
|