Documentation ¶
Overview ¶
Package neuron is the cloud-native, distributed ORM implementation.
It's design allows to use the separate repository for each model, with a possibility to have different relationships types between them.
Neuron-core consists of following packages:
neuron - (Neuron Core) the root package that gives easy access to all subpackages. .
controller - is the neuron's core, that registers and stores the models and contains configurations required by other packages.
config - contains the configurations for all packages.
query - used to create queries, filters, sort, pagination on base of mapped models.
mapping - contains the information about the mapped models their fields and settings.
class - contains errors classification system for the neuron packages.
log - is the logging interface for the neuron based applications.
i18n - is the neuron based application supported internationalization.
repository - is a package used to store and register the repositories.
It is also used to get the repository/factory per model. A modular design allows to use and compile only required repositories.
Index ¶
- func Begin() *query.Tx
- func BeginCtx(ctx context.Context, opts *query.TxOptions) *query.Tx
- func CloseAll(ctx context.Context) error
- func Controller() *controller.Controller
- func DialAll(ctx context.Context) error
- func HealthCheck(ctx context.Context) (*repository.HealthResponse, error)
- func InitController(cfg *config.Controller) (err error)
- func MigrateModels(ctx context.Context, models ...interface{}) error
- func NewController(cfg *config.Controller) (*controller.Controller, error)
- func Query(model interface{}) query.Builder
- func QueryC(c *controller.Controller, model interface{}) query.Builder
- func QueryCtx(ctx context.Context, model interface{}) query.Builder
- func QueryCtxC(ctx context.Context, c *controller.Controller, model interface{}) query.Builder
- func RegisterModels(models ...interface{}) error
- func RegisterRepository(name string, repo *config.Repository) error
- func RunInTransaction(ctx context.Context, txOpts *query.TxOptions, txFn TxFn) (err error)
- type TxFn
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BeginCtx ¶ added in v0.12.0
BeginCtx starts new transaction. Provided context 'ctx' is used until the transaction is committed or rolled back.
func CloseAll ¶ added in v0.14.1
CloseAll gently closes repository connections in the default controller.
func DialAll ¶ added in v0.14.1
DialAll establish connections for all repositories in the default controller.
func HealthCheck ¶ added in v0.14.1
func HealthCheck(ctx context.Context) (*repository.HealthResponse, error)
HealthCheck checks all repositories health for the default controller.
func InitController ¶ added in v0.12.0
func InitController(cfg *config.Controller) (err error)
InitController initializes default controller for given configuration. Returns error if the default controller is already defined. In order to force initializing new controller set the controller.DefaultController to nil.
func MigrateModels ¶ added in v0.14.1
MigrateModels updates or creates provided models representation in their related repositories. A representation of model might be a database table, collection etc. Model's repository must implement repository.Migrator. Models are migrated for the default controller.
func NewController ¶ added in v0.11.0
func NewController(cfg *config.Controller) (*controller.Controller, error)
NewController creates and initializes controller for provided config.
func QueryC ¶
func QueryC(c *controller.Controller, model interface{}) query.Builder
QueryC creates new query for the provided 'model' using 'c' controller.
func QueryCtx ¶ added in v0.12.0
QueryCtx creates new query for the provided 'model' using the default controller with respect to the context 'ctx'.
func QueryCtxC ¶ added in v0.12.0
func QueryCtxC(ctx context.Context, c *controller.Controller, model interface{}) query.Builder
QueryCtxC creates new query for the provided 'model' using 'c' controller with respect to the context 'ctx'.
func RegisterModels ¶ added in v0.11.0
func RegisterModels(models ...interface{}) error
RegisterModels registers all models into default controller. This function requires repositories to be registered before. Returns error if the model was already registered.
func RegisterRepository ¶ added in v0.11.0
func RegisterRepository(name string, repo *config.Repository) error
RegisterRepository registers repository into default controller. Returns error if the repository with given name was already registered. By default the first registered repository is set to the default repository for all models that doesn't define their repositories, unless default controller's config DisallowDefaultRepository is set to false.
Types ¶
Directories ¶
Path | Synopsis |
---|---|
Package annotation contains constants used as mapping annotations.
|
Package annotation contains constants used as mapping annotations. |
Package class contains `github.com/neuronlabs/errors` classes instances used in neuron-core.
|
Package class contains `github.com/neuronlabs/errors` classes instances used in neuron-core. |
Package config contains configuration structures used by all neuron-core packages.
|
Package config contains configuration structures used by all neuron-core packages. |
Package controller contains root neuron structure.
|
Package controller contains root neuron structure. |
Package internal contains neuron internal variables and interfaces, used by multiple packages.
|
Package internal contains neuron internal variables and interfaces, used by multiple packages. |
safemap
Package safemap defines concurrently safe hash map.
|
Package safemap defines concurrently safe hash map. |
Package log contains default neuron logger interface with it's subcomponents.
|
Package log contains default neuron logger interface with it's subcomponents. |
Package mapping contains neuron models mapped structures.
|
Package mapping contains neuron models mapped structures. |
Package namer defines the naming convention functions used to define registered model collection name and it's fields.
|
Package namer defines the naming convention functions used to define registered model collection name and it's fields. |
Package query is the package used that defines the neuron query it's structure, processor, transactions.
|
Package query is the package used that defines the neuron query it's structure, processor, transactions. |
Package repository is the package that defines neuron repositories and it's factories.
|
Package repository is the package that defines neuron repositories and it's factories. |