Documentation ¶
Index ¶
- type Column
- type Database
- type GeneralDatabase
- type MySQL
- func (mysql *MySQL) Connect() error
- func (mysql *MySQL) DSN() string
- func (mysql *MySQL) GetColumnsOfTable(table *Table) (err error)
- func (mysql *MySQL) GetDriverImportLibrary() string
- func (mysql *MySQL) GetFloatDatatypes() []string
- func (mysql *MySQL) GetIntegerDatatypes() []string
- func (mysql *MySQL) GetStringDatatypes() []string
- func (mysql *MySQL) GetTables() (tables []*Table, err error)
- func (mysql *MySQL) GetTemporalDatatypes() []string
- func (mysql *MySQL) GetTemporalDriverDataType() string
- func (mysql *MySQL) GetTextDatatypes() []string
- func (mysql *MySQL) IsAutoIncrement(column Column) bool
- func (mysql *MySQL) IsFloat(column Column) bool
- func (mysql *MySQL) IsInteger(column Column) bool
- func (mysql *MySQL) IsPrimaryKey(column Column) bool
- func (mysql *MySQL) IsString(column Column) bool
- func (mysql *MySQL) IsTemporal(column Column) bool
- func (mysql *MySQL) IsText(column Column) bool
- func (mysql *MySQL) PrepareGetColumnsOfTableStmt() (err error)
- type Postgresql
- func (pg *Postgresql) Connect() error
- func (pg *Postgresql) DSN() string
- func (pg *Postgresql) GetColumnsOfTable(table *Table) (err error)
- func (pg *Postgresql) GetDriverImportLibrary() string
- func (pg *Postgresql) GetFloatDatatypes() []string
- func (pg *Postgresql) GetIntegerDatatypes() []string
- func (pg *Postgresql) GetStringDatatypes() []string
- func (pg *Postgresql) GetTables() (tables []*Table, err error)
- func (pg *Postgresql) GetTemporalDatatypes() []string
- func (pg *Postgresql) GetTemporalDriverDataType() string
- func (pg *Postgresql) GetTextDatatypes() []string
- func (pg *Postgresql) IsAutoIncrement(column Column) bool
- func (pg *Postgresql) IsFloat(column Column) bool
- func (pg *Postgresql) IsInteger(column Column) bool
- func (pg *Postgresql) IsPrimaryKey(column Column) bool
- func (pg *Postgresql) IsString(column Column) bool
- func (pg *Postgresql) IsTemporal(column Column) bool
- func (pg *Postgresql) IsText(column Column) bool
- func (pg *Postgresql) PrepareGetColumnsOfTableStmt() (err error)
- type SQLite
- func (s *SQLite) Connect() (err error)
- func (s *SQLite) DSN() string
- func (s *SQLite) GetColumnsOfTable(table *Table) (err error)
- func (s *SQLite) GetDriverImportLibrary() string
- func (s *SQLite) GetFloatDatatypes() []string
- func (s *SQLite) GetIntegerDatatypes() []string
- func (s *SQLite) GetStringDatatypes() []string
- func (s *SQLite) GetTables() (tables []*Table, err error)
- func (s *SQLite) GetTemporalDatatypes() []string
- func (s *SQLite) GetTemporalDriverDataType() string
- func (s *SQLite) GetTextDatatypes() []string
- func (s *SQLite) IsAutoIncrement(column Column) bool
- func (s *SQLite) IsFloat(column Column) bool
- func (s *SQLite) IsInteger(column Column) bool
- func (s *SQLite) IsPrimaryKey(column Column) bool
- func (s *SQLite) IsString(column Column) bool
- func (s *SQLite) IsTemporal(column Column) bool
- func (s *SQLite) IsText(column Column) bool
- func (s *SQLite) PrepareGetColumnsOfTableStmt() (err error)
- type Table
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Column ¶
type Column struct { OrdinalPosition int `db:"ordinal_position"` Name string `db:"column_name"` DataType string `db:"data_type"` DefaultValue sql.NullString `db:"column_default"` IsNullable string `db:"is_nullable"` CharacterMaximumLength sql.NullInt64 `db:"character_maximum_length"` NumericPrecision sql.NullInt64 `db:"numeric_precision"` ColumnKey string `db:"column_key"` // mysql specific Extra string `db:"extra"` // mysql specific ConstraintName sql.NullString `db:"constraint_name"` // pg specific ConstraintType sql.NullString `db:"constraint_type"` // pg specific }
Column stores information about a column
type Database ¶
type Database interface { DSN() string Connect() (err error) Close() (err error) GetDriverImportLibrary() string GetTables() (tables []*Table, err error) PrepareGetColumnsOfTableStmt() (err error) GetColumnsOfTable(table *Table) (err error) IsPrimaryKey(column Column) bool IsAutoIncrement(column Column) bool IsNullable(column Column) bool GetStringDatatypes() []string IsString(column Column) bool GetTextDatatypes() []string IsText(column Column) bool GetIntegerDatatypes() []string IsInteger(column Column) bool GetFloatDatatypes() []string IsFloat(column Column) bool GetTemporalDatatypes() []string IsTemporal(column Column) bool GetTemporalDriverDataType() string }
Database interface for the concrete databases
type GeneralDatabase ¶
type GeneralDatabase struct { GetColumnsOfTableStmt *sqlx.Stmt *sqlx.DB *settings.Settings // contains filtered or unexported fields }
GeneralDatabase represents a base "class" database - for all other concrete databases it implements partly the Database interface
func (*GeneralDatabase) Close ¶
func (gdb *GeneralDatabase) Close() error
Close closes the database connection
func (*GeneralDatabase) Connect ¶
func (gdb *GeneralDatabase) Connect(dsn string) (err error)
Connect establishes a connection to the database with the given DSN. It pings the database to ensure it is reachable.
func (*GeneralDatabase) IsNullable ¶
func (gdb *GeneralDatabase) IsNullable(column Column) bool
IsNullable returns true if column is a nullable one
func (*GeneralDatabase) IsStringInSlice ¶
func (gdb *GeneralDatabase) IsStringInSlice(needle string, haystack []string) bool
IsStringInSlice checks if needle (string) is in haystack ([]string)
type MySQL ¶
type MySQL struct {
*GeneralDatabase
}
MySQL implemenmts the Database interface with help of generalDatabase
func (*MySQL) Connect ¶
Connect connects to the database by the given data source name (dsn) of the concrete database
func (*MySQL) GetColumnsOfTable ¶
GetColumnsOfTable executes the statement for retrieving the columns of a specific table for a given database
func (*MySQL) GetDriverImportLibrary ¶
GetDriverImportLibrary returns the golang sql driver specific fot the MySQL database
func (*MySQL) GetFloatDatatypes ¶
GetFloatDatatypes returns the float datatypes for the MySQL database
func (*MySQL) GetIntegerDatatypes ¶
GetIntegerDatatypes returns the integer datatypes for the MySQL database
func (*MySQL) GetStringDatatypes ¶
GetStringDatatypes returns the string datatypes for the MySQL database
func (*MySQL) GetTemporalDatatypes ¶
GetTemporalDatatypes returns the temporal datatypes for the MySQL database
func (*MySQL) GetTemporalDriverDataType ¶
GetTemporalDriverDataType returns the time data type specific for the MySQL database
func (*MySQL) GetTextDatatypes ¶
GetTextDatatypes returns the text datatypes for the MySQL database
func (*MySQL) IsAutoIncrement ¶
IsAutoIncrement checks if column is a auto_increment column
func (*MySQL) IsPrimaryKey ¶
IsPrimaryKey checks if column belongs to primary key
func (*MySQL) IsTemporal ¶
IsTemporal returns true if colum is of type temporal for the MySQL database
func (*MySQL) PrepareGetColumnsOfTableStmt ¶
PrepareGetColumnsOfTableStmt prepares the statement for retrieving the columns of a specific table for a given database
type Postgresql ¶
type Postgresql struct { *GeneralDatabase // contains filtered or unexported fields }
Postgresql implemenmts the Database interface with help of generalDatabase
func NewPostgresql ¶
func NewPostgresql(s *settings.Settings) *Postgresql
NewPostgresql creates a new Postgresql database
func (*Postgresql) Connect ¶
func (pg *Postgresql) Connect() error
Connect connects to the database by the given data source name (dsn) of the concrete database
func (*Postgresql) DSN ¶
func (pg *Postgresql) DSN() string
DSN creates the DSN String to connect to this database
func (*Postgresql) GetColumnsOfTable ¶
func (pg *Postgresql) GetColumnsOfTable(table *Table) (err error)
GetColumnsOfTable executes the statement for retrieving the columns of a specific table in a given schema
func (*Postgresql) GetDriverImportLibrary ¶
func (pg *Postgresql) GetDriverImportLibrary() string
GetDriverImportLibrary returns the golang sql driver specific fot the MySQL database
func (*Postgresql) GetFloatDatatypes ¶
func (pg *Postgresql) GetFloatDatatypes() []string
GetFloatDatatypes returns the float datatypes for the postgre database
func (*Postgresql) GetIntegerDatatypes ¶
func (pg *Postgresql) GetIntegerDatatypes() []string
GetIntegerDatatypes returns the integer datatypes for the postgre database
func (*Postgresql) GetStringDatatypes ¶
func (pg *Postgresql) GetStringDatatypes() []string
GetStringDatatypes returns the string datatypes for the postgre database
func (*Postgresql) GetTables ¶
func (pg *Postgresql) GetTables() (tables []*Table, err error)
GetTables gets all tables for a given schema by name
func (*Postgresql) GetTemporalDatatypes ¶
func (pg *Postgresql) GetTemporalDatatypes() []string
GetTemporalDatatypes returns the temporal datatypes for the postgre database
func (*Postgresql) GetTemporalDriverDataType ¶
func (pg *Postgresql) GetTemporalDriverDataType() string
GetTemporalDriverDataType returns the time data type specific for the postgre database
func (*Postgresql) GetTextDatatypes ¶
func (pg *Postgresql) GetTextDatatypes() []string
GetTextDatatypes returns the text datatypes for the postgre database
func (*Postgresql) IsAutoIncrement ¶
func (pg *Postgresql) IsAutoIncrement(column Column) bool
IsAutoIncrement checks if column is a serial column
func (*Postgresql) IsFloat ¶
func (pg *Postgresql) IsFloat(column Column) bool
IsFloat returns true if colum is of type float for the postgre database
func (*Postgresql) IsInteger ¶
func (pg *Postgresql) IsInteger(column Column) bool
IsInteger returns true if colum is of type integer for the postgre database
func (*Postgresql) IsPrimaryKey ¶
func (pg *Postgresql) IsPrimaryKey(column Column) bool
IsPrimaryKey checks if column belongs to primary key
func (*Postgresql) IsString ¶
func (pg *Postgresql) IsString(column Column) bool
IsString returns true if colum is of type string for the postgre database
func (*Postgresql) IsTemporal ¶
func (pg *Postgresql) IsTemporal(column Column) bool
IsTemporal returns true if colum is of type temporal for the postgre database
func (*Postgresql) IsText ¶
func (pg *Postgresql) IsText(column Column) bool
IsText returns true if colum is of type text for the postgre database
func (*Postgresql) PrepareGetColumnsOfTableStmt ¶
func (pg *Postgresql) PrepareGetColumnsOfTableStmt() (err error)
PrepareGetColumnsOfTableStmt prepares the statement for retrieving the columns of a specific table for a given database
type SQLite ¶
type SQLite struct {
*GeneralDatabase
}
SQLite implemenmts the Database interface with help of generalDatabase