# DSL: AshCubDB.DataLayer A CubDB data layer for Ash. ## DSL Documentation ### Index * cubdb ### Docs ## cubdb CubDB data layer configuration. Examples: ``` cubdb do directory "/opt/storage/my_awesome_resource" auto_compact? true auto_file_sync? true name :my_awesome_resource end ``` --- * `:directory` - The directory within which to store the CubDB data. If none is supplied, then one will be automatically generated in the `priv` directory of the parent OTP application. * `:otp_app` (`t:atom/0`) - The OTP application in whose `priv` directory data should be stored. Only used if `directory` is not supplied. When not provided `Application.get_application/1` will be called for the resource. * `:auto_compact?` (`t:boolean/0`) - Whether or not to automatically compact the CubDB database. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-is-compaction) for more information. The default value is `true`. * `:auto_file_sync?` (`t:boolean/0`) - Whether or not to automatically flush the buffer to disk on write. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-does-file-sync-mean) The default value is `true`. * `:name` (`t:atom/0`) - The name of the CubDB database. By default this is the name of the resource module, however in some (rare) circumstances you may wish to specifically name the database. ## cubdb CubDB data layer configuration. ### Examples ``` cubdb do directory "/opt/storage/my_awesome_resource" auto_compact? true auto_file_sync? true name :my_awesome_resource end ``` ### Options
Name Type Default Docs
directory nil | String.t The directory within which to store the CubDB data. If none is supplied, then one will be automatically generated in the `priv` directory of the parent OTP application.
otp_app atom The OTP application in whose `priv` directory data should be stored. Only used if `directory` is not supplied. When not provided `Application.get_application/1` will be called for the resource.
auto_compact? boolean true Whether or not to automatically compact the CubDB database. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-is-compaction) for more information.
auto_file_sync? boolean true Whether or not to automatically flush the buffer to disk on write. See [the CubDB documentation](https://hexdocs.pm/cubdb/faq.html#what-does-file-sync-mean)
name atom The name of the CubDB database. By default this is the name of the resource module, however in some (rare) circumstances you may wish to specifically name the database.