Change paths to use woodpecker instead of drone (#494)

* change paths to use woodpecker instead of drone

* improve sql file migration

* add migration notice
This commit is contained in:
Anbraten
2021-10-28 21:02:43 +02:00
committed by GitHub
parent 91d37be1da
commit 06800cb61e
12 changed files with 49 additions and 13 deletions

View File

@@ -173,7 +173,7 @@ var flags = []cli.Flag{
EnvVars: []string{"WOODPECKER_DATABASE_DATASOURCE"},
Name: "datasource",
Usage: "database driver configuration string",
Value: "drone.sqlite",
Value: "woodpecker.sqlite",
},
&cli.StringFlag{
EnvVars: []string{"WOODPECKER_PROMETHEUS_AUTH_TOKEN"},

View File

@@ -16,6 +16,7 @@ package main
import (
"fmt"
"os"
"time"
"github.com/gin-gonic/gin"
@@ -45,6 +46,10 @@ import (
)
func setupStore(c *cli.Context) (store.Store, error) {
if err := migrateSqlFile(c); err != nil {
log.Fatal().Err(err).Msg("could not migrate legacy sqlite file")
}
opts := &datastore.Opts{
Driver: c.String("driver"),
Config: c.String("datasource"),
@@ -53,6 +58,31 @@ func setupStore(c *cli.Context) (store.Store, error) {
return datastore.New(opts)
}
// TODO Remove this once we are sure users aren't attempting to migrate from Drone to Woodpecker (possibly never)
func migrateSqlFile(c *cli.Context) error {
// default config for docker containers
if c.String("datasource") == "/var/lib/woodpecker/woodpecker.sqlite" {
_, err := os.Stat("/var/lib/drone/drone.sqlite")
if err == nil {
return os.Rename("/var/lib/drone/drone.sqlite", "/var/lib/woodpecker/woodpecker.sqlite")
} else if !os.IsNotExist(err) {
return err
}
}
// default config for standalone installations
if c.String("datasource") == "woodpecker.sqlite" {
_, err := os.Stat("drone.sqlite")
if err == nil {
return os.Rename("drone.sqlite", "woodpecker.sqlite")
} else if err != nil && !os.IsNotExist(err) {
return err
}
}
return nil
}
func setupQueue(c *cli.Context, s store.Store) queue.Queue {
return model.WithTaskStore(queue.New(), s)
}