diff --git a/cmd/mautrix-telegram/legacymigrate.sql b/cmd/mautrix-telegram/legacymigrate.sql index 3e6164bc..aa870a22 100644 --- a/cmd/mautrix-telegram/legacymigrate.sql +++ b/cmd/mautrix-telegram/legacymigrate.sql @@ -265,6 +265,7 @@ DROP TABLE reaction_old; DROP TABLE portal_old; DROP TABLE puppet_old; DROP TABLE user_old; +-- only: postgres (this is deleted separately for sqlite) DROP TABLE telegram_file_old; DROP TABLE telethon_entities_old; DROP TABLE telethon_sent_files_old; diff --git a/cmd/mautrix-telegram/main.go b/cmd/mautrix-telegram/main.go index 915ac226..93629d03 100644 --- a/cmd/mautrix-telegram/main.go +++ b/cmd/mautrix-telegram/main.go @@ -17,12 +17,14 @@ package main import ( + "context" "encoding/base64" "fmt" "net/http" "strings" "go.mau.fi/util/dbutil/litestream" + "go.mau.fi/util/exerrors" "maunium.net/go/mautrix/bridgev2/bridgeconfig" "maunium.net/go/mautrix/bridgev2/matrix/mxmain" @@ -102,6 +104,15 @@ func main() { ), true, ) + ctx := context.TODO() + if exists, _ := m.DB.TableExists(ctx, "telegram_file_old"); exists { + exerrors.Must(m.DB.Exec(ctx, ` + PRAGMA foreign_keys = 'OFF'; + DROP TABLE telegram_file_old; + PRAGMA foreign_key_check; + PRAGMA foreign_keys = 'ON'; + `)) + } } m.InitVersion(Tag, Commit, BuildTime) m.Run()