feat(SQL): Added Base of MSSQL Connector
This commit is contained in:
parent
e5aaf4e31a
commit
5563afa4d6
2 changed files with 71 additions and 0 deletions
67
SQL/MSSQLConnector.go
Normal file
67
SQL/MSSQLConnector.go
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
package SQL
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"github.com/google/uuid"
|
||||
"net/url"
|
||||
"scabiosa/Logging"
|
||||
"scabiosa/Tools"
|
||||
"time"
|
||||
)
|
||||
|
||||
type MSSQLConnector struct {
|
||||
Address string
|
||||
Port uint16
|
||||
Database string
|
||||
DbUser string
|
||||
DbPassword string
|
||||
}
|
||||
|
||||
func GetMSSQLInstance(sqlConfig Tools.SQLConfig) MSSQLConnector {
|
||||
var mssql MSSQLConnector
|
||||
|
||||
mssql.Address = sqlConfig.SqlAddress
|
||||
mssql.Port = sqlConfig.SqlPort
|
||||
mssql.Database = sqlConfig.Database
|
||||
mssql.DbUser = sqlConfig.DbUser
|
||||
mssql.DbPassword = sqlConfig.DbPassword
|
||||
|
||||
return mssql
|
||||
}
|
||||
|
||||
func CheckIfEventLogTableExist(db *sql.DB, mssql MSSQLConnector) bool {
|
||||
rows, _ := db.Query("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'EventLog';")
|
||||
if !rows.Next() {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func CreateMSSQLConnection(mssql MSSQLConnector) *sql.DB {
|
||||
logger := Logging.DetailedLogger("MS-SQL", "createConnection")
|
||||
|
||||
query := url.Values{}
|
||||
query.Add("app name", "scabiosa")
|
||||
query.Add("database", "scabiosa-test")
|
||||
|
||||
sqlSettings := &url.URL{
|
||||
Scheme: "sqlserver",
|
||||
User: url.UserPassword(mssql.DbUser, mssql.DbPassword),
|
||||
Host: fmt.Sprintf("%s:%d", mssql.Address, mssql.Port),
|
||||
RawQuery: query.Encode(),
|
||||
}
|
||||
|
||||
db, err := sql.Open("sqlserver", sqlSettings.String())
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
}
|
||||
|
||||
return db
|
||||
}
|
||||
|
||||
func (mssql MSSQLConnector) createDefaultTables() {}
|
||||
func (mssql MSSQLConnector) newLogEntry(uuid uuid.UUID, logType LogType, backupName string, stage SQLStage, storageType RemoteStorageType, description string, timestamp time.Time) {
|
||||
}
|
||||
func (mssql MSSQLConnector) newBackupEntry(backupName string, lastBackup time.Time, localBackup bool, filePath string, storageType RemoteStorageType, remotePath string, localPath string) {
|
||||
}
|
||||
Reference in a new issue