From ffbc0d19cc3e43e6a180aab0b78f12962ae9d81f Mon Sep 17 00:00:00 2001 From: Connor van Spronssen Date: Wed, 27 Nov 2024 17:20:40 +0100 Subject: [PATCH] Add support for SQLite3 databases, migration support will follow --- .env.example | 8 +++----- cmd/database/main.go | 26 +++++++++++++++----------- go.mod | 1 + go.sum | 2 ++ 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/.env.example b/.env.example index 5f83f05..deba7db 100644 --- a/.env.example +++ b/.env.example @@ -4,10 +4,8 @@ CS_BRANCH="main" # Can be one of: "us", "eu", "azure-na" or "azure-eu". CS_REGION= -DB_HOST="127.0.0.1" -DB_PORT="6033" -DB_USER="root" -DB_PASS="root" -DB_NAME="db" +# Format: USER:PASS@tcp(HOST:PORT)/DB +DB_CONN="root:root@tcp(127.0.0.1:6033)/db" +DB_TYPE="mysql" # vim: set ft=sh: diff --git a/cmd/database/main.go b/cmd/database/main.go index 35cc58b..509c7ee 100644 --- a/cmd/database/main.go +++ b/cmd/database/main.go @@ -2,25 +2,29 @@ package database import ( "database/sql" - "fmt" + "errors" "os" _ "github.com/go-sql-driver/mysql" + _ "github.com/mattn/go-sqlite3" ) var DB *sql.DB func Connect() error { - connString := fmt.Sprintf( - "%s:%s@tcp(%s:%s)/%s", - os.Getenv("DB_USER"), - os.Getenv("DB_PASS"), - os.Getenv("DB_HOST"), - os.Getenv("DB_PORT"), - os.Getenv("DB_NAME"), - ) - - db, err := sql.Open("mysql", connString) + connString := os.Getenv("DB_CONN") + + if connString == "" { + return errors.New("DB_CONN is not set") + } + + dbType := os.Getenv("DB_TYPE") + + if dbType == "" { + return errors.New("DB_TYPR is not set") + } + + db, err := sql.Open(dbType, connString) if err != nil { return err diff --git a/go.mod b/go.mod index 6648ff7..86017ef 100644 --- a/go.mod +++ b/go.mod @@ -17,6 +17,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-sqlite3 v1.14.24 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/sys v0.27.0 // indirect diff --git a/go.sum b/go.sum index 05be0eb..1d1f390 100644 --- a/go.sum +++ b/go.sum @@ -45,6 +45,8 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBWDRM= +github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0=