Documentation ¶
Index ¶
- Constants
- func ApplyMigrations(conf *goose.DBConf, db *sql.DB) error
- func GetConnection(dc DatabaseConfig, env *env.VarSet) (*sql.DB, *goose.DBConf, error)
- func GetInMemorySQLLiteConnection() (*sql.DB, *goose.DBConf, error)
- func ModifySQLStatement(sql string, databaseProvider string) string
- func NewGooseDBConf(dc DatabaseConfig, env *env.VarSet) (*goose.DBConf, error)
- func ParseCFEnvs(db *DatabaseConfig, env *env.VarSet) (bool, error)
- func Ping(db *sql.DB) error
- func RegisterMigration(version int64, name string, f StratosMigration)
- func SetMigrations(steps []StratosMigrationStep)
- func WaitForMigrations(db *sql.DB) error
- type DatabaseConfig
- type SSLValidationMode
- type StratosMigration
- type StratosMigrationStep
- type VCAPService
Constants ¶
const ( SERVICES_ENV = "VCAP_SERVICES" STRATOS_TAG = "stratos" URI_POSTGRES = "postgres://" URI_MYSQL = "mysql://" TAG_MYSQL = "mysql" TAG_POSTGRES = "postgresql" DB_URI = "uri" )
const ( // SQLite DB Provider SQLITE string = "sqlite" // PGSQL DB Provider PGSQL = "pgsql" // MYSQL DB Provider MYSQL = "mysql" // TimeoutBoundary is the max time in minutes to wait for the DB Schema to be initialized TimeoutBoundary = 10 )
const ( // PGSQL SSL Modes // SSLDisabled means no checking of SSL SSLDisabled SSLValidationMode = "disable" // SSLRequired requires SSL without validation SSLRequired SSLValidationMode = "require" // SSLVerifyCA verifies the CA certificate SSLVerifyCA SSLValidationMode = "verify-ca" // SSLVerifyFull verifies the certificate and hostname and the CA SSLVerifyFull SSLValidationMode = "verify-full" // SQLiteSchemaFile - SQLite schema file SQLiteSchemaFile = "./deploy/db/sqlite_schema.sql" // SQLiteDatabaseFile - SQLite database file SQLiteDatabaseFile = "console-database.db" // DefaultDatabaseProvider is the efault database provider when not specified DefaultDatabaseProvider = MYSQL )
const ( // UniqueConstraintViolation is the error code for a unique constraint violation UniqueConstraintViolation = 23505 // DefaultConnectionTimeout is the default to timeout on connections DefaultConnectionTimeout = 10 )
Variables ¶
This section is empty.
Functions ¶
func ApplyMigrations ¶
ApplyMigrations will perform the migrations
func GetConnection ¶
GetConnection returns a database connection to either MySQL, PostgreSQL or SQLite
func GetInMemorySQLLiteConnection ¶
GetInMemorySQLLiteConnection returns an SQLite DB Connection
func ModifySQLStatement ¶
ModifySQLStatement - Modify the given DB statement for the specified provider, as appropraite e.g Postgres uses $1, $2 etc SQLite uses ?
func NewGooseDBConf ¶
NewGooseDBConf creates a new Goose config for database migrations
func ParseCFEnvs ¶
func ParseCFEnvs(db *DatabaseConfig, env *env.VarSet) (bool, error)
Discover cf db services via their 'uri' env var and apply settings to the DatabaseConfig objects
func RegisterMigration ¶
func RegisterMigration(version int64, name string, f StratosMigration)
RegisterMigration registers a migration step. This should be called from an init() function
func SetMigrations ¶
func SetMigrations(steps []StratosMigrationStep)
SetMigrations replces the current list of migrations - used only by tests internally
func WaitForMigrations ¶
WaitForMigrations will wait until all migrations have been applied
Types ¶
type DatabaseConfig ¶
type DatabaseConfig struct { DatabaseProvider string `configName:"DATABASE_PROVIDER"` Username string `configName:"DB_USER"` Password string `configName:"DB_PASSWORD"` Database string `configName:"DB_DATABASE_NAME"` Host string `configName:"DB_HOST"` Port int `configName:"DB_PORT"` SSLMode string `configName:"DB_SSL_MODE"` ConnectionTimeoutInSecs int `configName:"DB_CONNECT_TIMEOUT_IN_SECS"` SSLCertificate string `configName:"DB_CERT"` SSLKey string `configName:"DB_CERT_KEY"` SSLRootCertificate string `configName:"DB_ROOT_CERT"` }
DatabaseConfig represents the connection configuration parameters
func NewDatabaseConnectionParametersFromConfig ¶
func NewDatabaseConnectionParametersFromConfig(dc DatabaseConfig) (DatabaseConfig, error)
NewDatabaseConnectionParametersFromConfig setup database connection parameters based on contents of config struct
type SSLValidationMode ¶
type SSLValidationMode string
SSLValidationMode is the PostgreSQL driver SSL validation modes
type StratosMigration ¶
StratosMigration applies a migration step. Use with RegisterMigration()
type StratosMigrationStep ¶
type StratosMigrationStep struct { Version int64 Name string Apply StratosMigration }
StratosMigrationStep represents a migaration step
func GetOrderedMigrations ¶
func GetOrderedMigrations() []StratosMigrationStep
GetOrderedMigrations returns an order list of migrations to run
type VCAPService ¶
Source Files ¶
- 20170818120003_InitialSchema.go
- 20170818162837_SetupSchema.go
- 20170829154900_TokenDisconnected.go
- 20171108102900_AuthType.go
- 20180413135700_MetricsSchema.go
- 20180627111300_UpdateMetadata.go
- 20180703142800_CFClient.go
- 20180813110300_RemoveStaleTokens.go
- 20180824092600_LinkedTokens.go
- 20180831104300_SSOEndpointFlag.go
- 20180907123000_SSOSetupFlag.go
- 20181129140500_UserFavorites.go
- 20190305144600_EndpointSubtype.go
- 20190515133200_AuthEndpoint.go
- 20190522121200_LocalUsers.go
- 20190621212700_ConfigSchema.go
- 20190918092300_LocalUsersUpdates.go
- 20190930092500_LocalUsersTriggerFix.go
- 20191008121900_PrimaryKeys.go
- 20200117152200_SesssionData.go
- 20200814140918_ApiKeys.go
- 20200902162200_HelmSubtype.go
- database_cf_config.go
- datastore.go
- datastore_migrator.go