mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-06-09 15:11:10 +00:00
Database interface & auditing feature (#332)
* added audit manager * Basic database DOA setup * Added base config file * added sqlite support and creation of schema * added basic tests and config entry * corrected issues of database is disabled * fixed path for test * WIP * Added tests fixed config checking * reverted files back to upstream * reverted go.mod files * no more test test test * removed local testing details for psql * hello * added comments * increased ping to 30 seconds * renamed database table and added additional condition around test * removed database test details * goimport ran on all files * WIP * first attempt at migration * fixes for migration system * Migration system logger interface implemented * fixes to print functions * added write pooling pass * gofmt :D * formatted imports correctly * removed old code * added creation of migration * gofmt * :D Hello * ❌ 🏎️ * maybe one day i will remember to revert go mod files * checked err return condition correctly * first changes for PR feedback * code clean up * protect Connected with RWmutex & event with mutex * : D * we can just pretend like it never happened * MOved migrations back to source directory and added README * readme formatting update * Addd command line override for datadir * use correct var when creating a migration and confirm folder is created * Check if database version is newer than latest migration and also you know make migrations work..... * uses filepath instead of manual path to use correct path seperator * Add connection message and lower timeout * Added support for sslmode for psql * no longer force Close of database instead allow driver to maage * Added closer func to test output * sslmode added to example config
This commit is contained in:
38
database/db_types.go
Normal file
38
database/db_types.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"sync"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/thrasher-corp/gocryptotrader/database/drivers"
|
||||
)
|
||||
|
||||
// Database holds a pointer to sql connection, DataPath which is used for file based databases
|
||||
// and a pointer to a Config struct
|
||||
type Database struct {
|
||||
Config *Config
|
||||
DataPath string
|
||||
SQL *sqlx.DB
|
||||
|
||||
Connected bool
|
||||
Mu sync.RWMutex
|
||||
}
|
||||
|
||||
// Config holds connection information about the database what the driver type is and if its enabled or not
|
||||
type Config struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Driver string `json:"driver"`
|
||||
drivers.ConnectionDetails `json:"connectionDetails"`
|
||||
}
|
||||
|
||||
// Conn is a global copy of Database{} struct
|
||||
var Conn = &Database{}
|
||||
|
||||
var (
|
||||
// ErrNoDatabaseProvided error to display when no database is provided
|
||||
ErrNoDatabaseProvided = errors.New("no database provided")
|
||||
|
||||
// SupportedDrivers slice of supported database driver types
|
||||
SupportedDrivers = []string{"sqlite", "postgres"}
|
||||
)
|
||||
Reference in New Issue
Block a user