Documentation ¶
Overview ¶
Package postgres contains the domain concept definitions needed to support Magistrala PostgreSQL database functionality.
It provides the abstraction of the PostgreSQL database service, which is used to configure, setup and connect to the PostgreSQL database.
Index ¶
- func Connect(cfg Config) (*sqlx.DB, error)
- func CreateMetadataQuery(entity string, um map[string]interface{}) (string, []byte, error)
- func HandleError(wrapper, err error) error
- func Setup(cfg Config, migrations migrate.MemoryMigrationSource) (*sqlx.DB, error)
- func Total(ctx context.Context, db Database, query string, params interface{}) (uint64, error)
- type Config
- type Database
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Connect ¶
Connect creates a connection to the PostgreSQL instance.
For example:
db, err := postgres.Connect(postgres.Config{})
func CreateMetadataQuery ¶
CreateMetadataQuery creates a query to filter by metadata.
For example:
query, param, err := CreateMetadataQuery("", map[string]interface{}{ "key": "value", })
func HandleError ¶
HandleError handles the error and returns a wrapped error. It checks the error code and returns a specific error.
Types ¶
type Config ¶
type Config struct { Host string `env:"HOST" envDefault:"localhost"` Port string `env:"PORT" envDefault:"5432"` User string `env:"USER" envDefault:"magistrala"` Pass string `env:"PASS" envDefault:"magistrala"` Name string `env:"NAME" envDefault:""` SSLMode string `env:"SSL_MODE" envDefault:"disable"` SSLCert string `env:"SSL_CERT" envDefault:""` SSLKey string `env:"SSL_KEY" envDefault:""` SSLRootCert string `env:"SSL_ROOT_CERT" envDefault:""` }
type Database ¶
type Database interface { // NamedQueryContext executes a named query against the database and returns NamedQueryContext(context.Context, string, interface{}) (*sqlx.Rows, error) // NamedExecContext executes a named query against the database and returns NamedExecContext(context.Context, string, interface{}) (sql.Result, error) // QueryRowxContext queries the database and returns an *sqlx.Row. QueryRowxContext(context.Context, string, ...interface{}) *sqlx.Row // QueryxContext queries the database and returns an *sqlx.Rows and an error. QueryxContext(context.Context, string, ...interface{}) (*sqlx.Rows, error) // QueryContext queries the database and returns an *sql.Rows and an error. QueryContext(ctx context.Context, query string, args ...interface{}) (*sql.Rows, error) // ExecContext executes a query without returning any rows. ExecContext(context.Context, string, ...interface{}) (sql.Result, error) // BeginTxx begins a transaction and returns an *sqlx.Tx. BeginTxx(ctx context.Context, opts *sql.TxOptions) (*sqlx.Tx, error) }
Database provides a database interface.
Click to show internal directories.
Click to hide internal directories.