Documentation ¶
Index ¶
- Variables
- func NewStorage(opts ...StorageOption) (s persistence.Storage, err error)
- func WithPreload(query string, args ...any) *preload
- func WithoutPreload() *preload
- type AnySerializer
- type StorageOption
- func WithAdditionalAutoMigration(types ...any) StorageOption
- func WithInMemory() StorageOption
- func WithLogger(logger logger.Interface) StorageOption
- func WithMaxOpenConns(max int) StorageOption
- func WithPostgres(host string, port uint16, user string, pw string, db string, sslmode string) StorageOption
- type TimestampSerializer
Constants ¶
This section is empty.
Variables ¶
var DefaultTypes = []any{ &auth.User{}, &orchestrator.CloudService{}, &assessment.MetricImplementation{}, &assessment.Metric{}, &orchestrator.Certificate{}, &orchestrator.State{}, &orchestrator.Requirement{}, }
DefaultTypes contains a list of internal types that need to be migrated by default
Functions ¶
func NewStorage ¶
func NewStorage(opts ...StorageOption) (s persistence.Storage, err error)
NewStorage creates a new storage using GORM (which DB to use depends on the StorageOption)
func WithPreload ¶ added in v1.5.4
WithPreload allows the customization of Gorm's preload feature with the specified query and arguments.
func WithoutPreload ¶ added in v1.5.4
func WithoutPreload() *preload
WithoutPreload disables any kind of preloading of Gorm. This is necessary, if custom join tables are used, otherwise Gorm will throws errors.
Types ¶
type AnySerializer ¶ added in v1.5.0
type AnySerializer struct{}
AnySerializer is a GORM serializer that allows the serialization and deserialization of the google.protobuf.Any protobuf message type using a JSONB field.
func (AnySerializer) Scan ¶ added in v1.5.0
func (AnySerializer) Scan(ctx context.Context, field *schema.Field, dst reflect.Value, dbValue interface{}) (err error)
Scan implements https://pkg.go.dev/gorm.io/gorm/schema#SerializerInterface to indicate how this struct can be loaded from an SQL database field.
func (AnySerializer) Value ¶ added in v1.5.0
func (AnySerializer) Value(_ context.Context, _ *schema.Field, _ reflect.Value, fieldValue interface{}) (interface{}, error)
Value implements https://pkg.go.dev/gorm.io/gorm/schema#SerializerValuerInterface to indicate how this struct will be saved into an SQL database field.
type StorageOption ¶
type StorageOption func(*storage)
StorageOption is a functional option type to configure the GORM storage. E.g. WithInMemory or WithPostgres
func WithAdditionalAutoMigration ¶ added in v1.4.11
func WithAdditionalAutoMigration(types ...any) StorageOption
WithAdditionalAutoMigration is an option to add additional types to GORM's auto-migration.
func WithInMemory ¶
func WithInMemory() StorageOption
WithInMemory is an option to configure Storage to use an in memory DB
func WithLogger ¶ added in v1.4.9
func WithLogger(logger logger.Interface) StorageOption
WithLogger is an option to configure Storage to use a Logger
func WithMaxOpenConns ¶ added in v1.4.12
func WithMaxOpenConns(max int) StorageOption
WithMaxOpenConns is an option to configure the maximum number of open connections
func WithPostgres ¶
func WithPostgres(host string, port uint16, user string, pw string, db string, sslmode string) StorageOption
WithPostgres is an option to configure Storage to use a Postgres DB
type TimestampSerializer ¶ added in v1.4.16
type TimestampSerializer struct{}
TimestampSerializer is a GORM serializer that allows the serialization and deserialization of the google.protobuf.Timestamp protobuf message type.
func (TimestampSerializer) Scan ¶ added in v1.4.16
func (TimestampSerializer) Scan(ctx context.Context, field *schema.Field, dst reflect.Value, dbValue interface{}) (err error)
Scan implements https://pkg.go.dev/gorm.io/gorm/schema#SerializerInterface to indicate how this struct can be loaded from an SQL database field.
func (TimestampSerializer) Value ¶ added in v1.4.16
func (TimestampSerializer) Value(_ context.Context, _ *schema.Field, _ reflect.Value, fieldValue interface{}) (interface{}, error)
Value implements https://pkg.go.dev/gorm.io/gorm/schema#SerializerValuerInterface to indicate how this struct will be saved into an SQL database field.