cloud/lib/component: don't fail when there's no migrations to run
Currently we always migrate the database schema up on every startup.
However, the go-migrate API returns an error if Up() is called when
everything is up to date.
Change-Id: I245d3985719c5baee7d483c0cd9dc21c142b49af
Reviewed-on: https://review.monogon.dev/c/monogon/+/1502
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/cloud/lib/component/crdb.go b/cloud/lib/component/crdb.go
index 0de8bcf..4ba9470 100644
--- a/cloud/lib/component/crdb.go
+++ b/cloud/lib/component/crdb.go
@@ -2,6 +2,7 @@
import (
"database/sql"
+ "errors"
"flag"
"fmt"
"net/url"
@@ -141,7 +142,15 @@
if err != nil {
return err
}
- return m.Up()
+ err = m.Up()
+ switch {
+ case err == nil:
+ return nil
+ case errors.Is(err, migrate.ErrNoChange):
+ return nil
+ default:
+ return err
+ }
}
// MigrateDownDangerDanger removes all data from the database by performing a