Documentation
¶
Index ¶
- func ConnectionString(filename string, options ...Option) string
- func ExecuteScripts(db *sql.DB, scripts ...string) error
- func NewTestDatabase(scripts ...string) (*sql.DB, error)
- type Cache
- type DatabaseConstructor
- type DatabaseInitFunc
- type ForeignKeys
- type JournalMode
- type LockingMode
- type Mode
- type Mutex
- type Option
- type SqlTransactionManager
- type Synchronous
- type Transaction
- type TransactionManager
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConnectionString ¶
ConnectionString erzeugt aus einem Dateinamen und Optionen einen DSN
Types ¶
type DatabaseConstructor ¶
Funktionen des Typs DatabaseConstructor erzeugen SQL Datenbanken
type DatabaseInitFunc ¶
Funktionen des Type DatabaseInitFunc initialisieren eine Datenbank
func Execute ¶
func Execute(scripts ...string) DatabaseInitFunc
type ForeignKeys ¶
type ForeignKeys = Option
const ( FK_ENABLED ForeignKeys = "_fk=true" FK_DISABLED ForeignKeys = "_fk=false" )
type JournalMode ¶
type JournalMode = Option
const ( JOURNAL_DELETE JournalMode = "_journal_mode=DELETE" JOURNAL_TRUNCATE JournalMode = "_journal_mode=TRUNCATE" JOURNAL_PERSIST JournalMode = "_journal_mode=PERSIST" JOURNAL_MEMORY JournalMode = "_journal_mode=MEMORY" JOURNAL_WAL JournalMode = "_journal_mode=WAL" JOURNAL_OFF JournalMode = "_journal_mode=OFF" )
type LockingMode ¶
type LockingMode = Option
const ( LOCKING_NORMAL LockingMode = "_locking_mode=NORMAL" LOCKING_EXCLUSIVE LockingMode = "_locking_mode=EXCLUSIVE" )
type SqlTransactionManager ¶
type SqlTransactionManager struct {
// contains filtered or unexported fields
}
func NewSqlTransactionManager ¶
func NewSqlTransactionManager(db *sql.DB) (*SqlTransactionManager, error)
func (*SqlTransactionManager) BeginTx ¶
func (tm *SqlTransactionManager) BeginTx(ctx context.Context) (Transaction, error)
BeginTx startet eine Transaktion
Für den ersten Aufruf von BeginTx für den context.Context startet der Transaktionsmanager eine Datenbank-Transaktion. Für jeden weiteren Aufruf wird eine geschachtelte Transaktion erstellt, die mit der ursprünglichen Datenbank-Transaktion verkettet ist. Ein Rollback der geschachtelten Transaktion führ zu einem Rollback der Datenbank-Transaktion. Ein Commit der geschachtelten Transaktion hat keine Auswirkung auf die Datenbanktransaktion. Ein Rollback oder Commit einer beliebigen Transaktion, löst die Transaktion vom Transaktionmanager und übergibt die Kontrolle an die jeweils übergeordnete Transaktion zurück.
func (*SqlTransactionManager) Count ¶
func (tm *SqlTransactionManager) Count() int
Count lifert die Anzahl offener Transaktionen
func (*SqlTransactionManager) GetDb ¶
func (tm *SqlTransactionManager) GetDb() *sql.DB
type Synchronous ¶
type Synchronous = Option
const ( SYNC_OFF Synchronous = "_synchronous=OFF" SYNC_NORMAL Synchronous = "_synchronous=NORMAL" SYNC_FULL Synchronous = "_synchronous=FULL" SYNC_EXTRA Synchronous = "_synchronous=EXTRA" )
type Transaction ¶
type TransactionManager ¶
type TransactionManager interface { BeginTx(ctx context.Context) (Transaction, error) Count() int }