1
0
mirror of https://codeberg.org/crowci/crow.git synced 2025-08-09 07:42:52 +03:00

Migrate to Xorm (#474)

close #234

* Migrate store
* Migrate tests
* Rewrite migrations
* Init fresh DB in on step
* Rm old stuff (meddler, sql files, dead code, ...)
This commit is contained in:
6543
2021-11-13 20:18:06 +01:00
committed by GitHub
parent aca5fddcf3
commit ca8e215cfa
582 changed files with 81745 additions and 17600 deletions

View File

@@ -17,7 +17,6 @@ package main
import (
"fmt"
"os"
"strings"
"time"
"github.com/gin-gonic/gin"
@@ -50,7 +49,19 @@ func setupStore(c *cli.Context) (store.Store, error) {
datasource := c.String("datasource")
driver := c.String("driver")
if strings.ToLower(driver) == "sqlite3" {
if driver == "sqlite3" {
if datastore.SupportedDriver("sqlite3") {
log.Debug().Msgf("server has sqlite3 support")
} else {
log.Debug().Msgf("server was build with no sqlite3 support!")
}
}
if !datastore.SupportedDriver(driver) {
log.Fatal().Msgf("database driver '%s' not supported", driver)
}
if driver == "sqlite3" {
if new, err := fallbackSqlite3File(datasource); err != nil {
log.Fatal().Err(err).Msg("fallback to old sqlite3 file failed")
} else {
@@ -58,12 +69,21 @@ func setupStore(c *cli.Context) (store.Store, error) {
}
}
opts := &datastore.Opts{
opts := &store.Opts{
Driver: driver,
Config: datasource,
}
log.Trace().Msgf("setup datastore: %#v", opts)
return datastore.New(opts)
log.Trace().Msgf("setup datastore: %#v", *opts)
store, err := datastore.NewEngine(opts)
if err != nil {
log.Fatal().Err(err).Msg("could not open datastore")
}
if err := store.Migrate(); err != nil {
log.Fatal().Err(err).Msg("could not migrate datastore")
}
return store, nil
}
// TODO: convert it to a check and fail hard only function in v0.16.0 to be able to remove it in v0.17.0