diff --git a/tinode-db/main.go b/tinode-db/main.go index 2693ef981963cf81f8aa587631abe3ef71c07b55..6be833f6433b42978cc8d4588fd55ee790063280 100644 --- a/tinode-db/main.go +++ b/tinode-db/main.go @@ -240,7 +240,9 @@ func main() { err := store.Store.Open(1, config.StoreConfig) defer store.Store.Close() - log.Printf("Database adapter: '%s'; version: %d", store.Store.GetAdapterName(), store.Store.GetAdapterVersion()) + adapterVersion := store.Store.GetAdapterVersion() + databaseVersion := store.Store.GetDbVersion() + log.Printf("Database adapter: '%s'; version: %d", store.Store.GetAdapterName(), adapterVersion) if err != nil { if strings.Contains(err.Error(), "Database not initialized") { @@ -249,11 +251,14 @@ func main() { } log.Println("Database not found. Creating.") } else if strings.Contains(err.Error(), "Invalid database version") { - msg := "Wrong DB version: expected " + strconv.Itoa(store.Store.GetAdapterVersion()) + ", got " + - strconv.Itoa(store.Store.GetDbVersion()) + "." + msg := "Wrong DB version: expected " + strconv.Itoa(adapterVersion) + ", got " + + strconv.Itoa(databaseVersion) + "." if *reset { log.Println(msg, "Dropping and recreating the database.") } else if *upgrade { + if databaseVersion > adapterVersion { + log.Fatalln(msg, "Unable to upgrade: database has greater version than the adapter.") + } log.Println(msg, "Upgrading the database.") } else { log.Fatalln(msg, "Use --reset to reset, --upgrade to upgrade.")