View Source Needle.Pointable (needle v0.8.0)
Sets up an Ecto Schema for a Pointable table.
Sample Usage
use Needle.Pointable,
otp_app: :my_app, # your OTP application's name
source: "my_table", # default name of table in database
table_id: "01EBTVSZJ6X02J01R1XWWPWGZW" # unique ULID to identify table
pointable_schema do
# ... fields go here, if any
end
Overriding with configuration
During use
(i.e. compilation time), we will attempt to load
configuration from the provided :otp_app
under the key of the
current module. Any values provided here will override the defaults
provided to use
. This allows you to configure them after the fact.
Additionally, pointables use Exto
's flex_schema()
, so you can
provide additional configuration for those in the same place.
I shall say it again because it's important: This happens at compile time. You must rebuild the app containing the pointable whenever the configuration changes.
Introspection
Defines a function __pointers__/1
to introspect data. Recognised
parameters:
:role
- :pointable
:table_id
- retrieves the ULID id of the pointable table.
:otp_app
- retrieves the OTP application to which this belongs.