DynamoDB Dynomite Config Reference

Important: These docs are for the outdated Jets 5 versions and below. For the latest Jets docs: docs.rubyonjets.com

config/initializers/dynomite.rb

Dynomite.configure do |config|
  config.default_count_method = :item_count # use fast count lookup, may be stale for 6 hours
  config.warn_slow = false # disable slow warning if it's annoying
end

Reference

The table below covers each setting. The config. portion is not shown for conciseness. IE: namespace vs config.namespace.

Name Default Description
default_count_method :scan_count Can be fast item_count or slow scan_count. The item_count method will do a fast count lookup, though the count may be stale for up to 6 hours. The scan_count method will do an accurate count but does a scan, which is slow and not recommended.
default_field_type :infer The default field type option. By default, this is :infer. This means aws-sdk-dynamodb handle the typecasting via inference of the value itself. This allows you to save array, set, and map “types”. If you change this to :string then a .to_s is used to typecast and will force the value to a String.
endpoint nil Useful if you want to adjust the endpoint to a local DynamoDB server.
log_level nil Defaults to :debug in JETS_ENV=development and :info otherwise. With debug, you’ll see all DynamoDB API requests.
logger Dynomite::Logger.new($stderr) The default Dynomite::Logger is shows simpflied and clean output without timestamps. You can use your own custom logger to override this.
namespace dynomite The namespace to use as the prefix for table names. You should set this initializers/dynomite.rb as Jets.project_namespace
namespace_separator _ The namespace separator between the namespace and table name. IE: demo-dev_posts. You should use the default.
random_sort_key_type :string :string or :number. The random id is generated for the sort key when not explicitly set. The number will always start with a non-zero.
undeclared_field_behavior :warn Controls how dynomite behaves when an undeclared field value is assigned to attributes and saved. More docs: .
update_strategy :put_item The update strategy to use. Dynomite will use either a put_item or update_item to save the data to the table. The update_item is more efficient as only changed attributes are sent over the wire. Important: update_item is an experimental setting. Assigning attributes with the bracket notation, IE: post[:title] = "value", will not mark attributes as changed and so they would not be saved with update_item. Since other libraries out of dynomite’s control might assign with the bracket notation directly, it may cause some confusing behavior with update_item. Additionally, associations do not currently work with update_item for the same reason.
warn_slow true Print warning for slow scan operations.