legacymigrate: add support for migrating legacy database and config (#23)
This commit is contained in:
@@ -17,9 +17,15 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
|
||||
"go.mau.fi/util/dbutil/litestream"
|
||||
"maunium.net/go/mautrix/bridgev2/bridgeconfig"
|
||||
"maunium.net/go/mautrix/bridgev2/matrix/mxmain"
|
||||
|
||||
"go.mau.fi/mautrix-telegram/pkg/connector"
|
||||
"go.mau.fi/mautrix-telegram/pkg/connector/store/upgrades"
|
||||
)
|
||||
|
||||
// Information to find out exactly which commit the bridge was built from.
|
||||
@@ -30,14 +36,48 @@ var (
|
||||
BuildTime = "unknown"
|
||||
)
|
||||
|
||||
func main() {
|
||||
m := mxmain.BridgeMain{
|
||||
Name: "mautrix-telegram",
|
||||
URL: "https://github.com/mautrix/telegram",
|
||||
Description: "A Matrix-Telegram puppeting bridge.",
|
||||
Version: "0.16.0",
|
||||
var c = connector.NewConnector()
|
||||
var m = mxmain.BridgeMain{
|
||||
Name: "mautrix-telegram",
|
||||
URL: "https://github.com/mautrix/telegram",
|
||||
Description: "A Matrix-Telegram puppeting bridge.",
|
||||
Version: "0.16.0",
|
||||
|
||||
Connector: connector.NewConnector(),
|
||||
Connector: c,
|
||||
}
|
||||
|
||||
func init() {
|
||||
litestream.Functions["encode"] = func(data []byte, encoding string) string {
|
||||
if encoding == "base64" {
|
||||
return base64.StdEncoding.EncodeToString(data)
|
||||
}
|
||||
panic(fmt.Errorf("unknown encoding %q", encoding))
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
bridgeconfig.HackyMigrateLegacyNetworkConfig = migrateLegacyConfig
|
||||
versionWithoutCommit := m.Version
|
||||
m.PostInit = func() {
|
||||
if c.Config.DeviceInfo.AppVersion == "auto" {
|
||||
c.Config.DeviceInfo.AppVersion = versionWithoutCommit
|
||||
}
|
||||
if c.Config.DeviceInfo.SystemVersion == "auto" {
|
||||
c.Config.DeviceInfo.SystemVersion = ""
|
||||
}
|
||||
if c.Config.DeviceInfo.DeviceModel == "auto" || c.Config.DeviceInfo.DeviceModel == "" {
|
||||
c.Config.DeviceInfo.DeviceModel = "mautrix-telegram"
|
||||
}
|
||||
m.CheckLegacyDB(
|
||||
18,
|
||||
"v0.14.0",
|
||||
"v0.16.0",
|
||||
m.LegacyMigrateWithAnotherUpgrader(
|
||||
legacyMigrateRenameTables, legacyMigrateCopyData, 16,
|
||||
upgrades.Table, "telegram_version", 1,
|
||||
),
|
||||
true,
|
||||
)
|
||||
}
|
||||
m.InitVersion(Tag, Commit, BuildTime)
|
||||
m.Run()
|
||||
|
||||
Reference in New Issue
Block a user