Adding the database + README
parent
e4eea97344
commit
2e0ef0b7d8
|
@ -1,6 +1,7 @@
|
||||||
pkg/
|
pkg/
|
||||||
.go/
|
.go/
|
||||||
.vscode/
|
.vscode/
|
||||||
|
bin/
|
||||||
|
|
||||||
config.json
|
config.json
|
||||||
chromagies
|
chromagies
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Chromagies
|
||||||
|
|
||||||
|
## Database setup
|
||||||
|
|
||||||
|
Create database : CREATE DATABASE 'DATABASE_NAME';
|
||||||
|
|
||||||
|
Replace DATABASE_NAME with yours.
|
||||||
|
|
||||||
|
Create user : CREATE USER 'DATABASE_USER'@'localhost' IDENTIFIED BY 'A_VERY_BAD_PASSWORD'
|
||||||
|
|
||||||
|
Replace DATABASE_USER and A_VERY_BAD_PASSWORD by yours.
|
||||||
|
|
||||||
|
Give permissions to user : GRANT SELECT, INSERT, CREATE, DELETE, UPDATE, DROP, EXECUTE ON 'DATABASE_NAME' TO 'DATABASE_USER'@'localhost';
|
||||||
|
|
6
go.mod
6
go.mod
|
@ -2,4 +2,8 @@ module chromagies
|
||||||
|
|
||||||
go 1.24.2
|
go 1.24.2
|
||||||
|
|
||||||
require github.com/gorilla/mux v1.8.1
|
require (
|
||||||
|
github.com/gorilla/mux v1.8.1
|
||||||
|
filippo.io/edwards25519 v1.1.0
|
||||||
|
github.com/go-sql-driver/mysql v1.9.2
|
||||||
|
)
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -1,2 +1,6 @@
|
||||||
|
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
|
||||||
|
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
|
||||||
|
github.com/go-sql-driver/mysql v1.9.2 h1:4cNKDYQ1I84SXslGddlsrMhc8k4LeDVj6Ad6WRjiHuU=
|
||||||
|
github.com/go-sql-driver/mysql v1.9.2/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
|
||||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
||||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
||||||
|
|
2
main.go
2
main.go
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"chromagies/src/api"
|
"chromagies/src/api"
|
||||||
"chromagies/src/config"
|
"chromagies/src/config"
|
||||||
|
"chromagies/src/database"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -28,6 +29,7 @@ func main() {
|
||||||
initConfig()
|
initConfig()
|
||||||
startLogger()
|
startLogger()
|
||||||
|
|
||||||
|
database.Init()
|
||||||
initRouter()
|
initRouter()
|
||||||
|
|
||||||
stopTime := time.Now()
|
stopTime := time.Now()
|
||||||
|
|
|
@ -4,27 +4,52 @@ import (
|
||||||
"chromagies/src/config"
|
"chromagies/src/config"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
|
|
||||||
|
_ "github.com/go-sql-driver/mysql"
|
||||||
)
|
)
|
||||||
|
|
||||||
var db *sql.DB
|
var db *sql.DB
|
||||||
var dbConfig config.Database
|
var dbConfig config.Database
|
||||||
var dbPath string
|
var dbPath string
|
||||||
|
|
||||||
func Init(conf config.Config) {
|
func Init() {
|
||||||
dbConfig = conf.Database
|
|
||||||
dbPath = fmt.Sprintf("%s:%s@(%s:%d)/%s?parseTime=true", dbConfig.Host, dbConfig.Password, dbConfig.Host, dbConfig.Port, dbConfig.Database)
|
|
||||||
}
|
|
||||||
|
|
||||||
func openDB() {
|
|
||||||
var err error
|
var err error
|
||||||
|
dbConfig = config.GetConfig().Database
|
||||||
if db != nil {
|
dbPath = fmt.Sprintf("%s:%s@(%s:%s)/%s?parseTime=true", dbConfig.User, dbConfig.Password, dbConfig.Host, dbConfig.Port, dbConfig.Database)
|
||||||
db.Close()
|
|
||||||
db = nil
|
|
||||||
}
|
|
||||||
|
|
||||||
db, err = sql.Open("mysql", dbPath)
|
db, err = sql.Open("mysql", dbPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Println("Cannot connect to database !")
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = db.Ping()
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Cannot ping the database !")
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var query string = `SHOW GRANTS;`
|
||||||
|
var rows *sql.Rows = executeQuery(query)
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
for rows.Next() {
|
||||||
|
var res string
|
||||||
|
rows.Scan(&res)
|
||||||
|
fmt.Println(res)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func executeQuery(query string) *sql.Rows {
|
||||||
|
var err error
|
||||||
|
var rows *sql.Rows
|
||||||
|
|
||||||
|
rows, err = db.Query(query)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error while query DB :")
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return rows
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue