From 129fb0b030d6e155a27262f45efbb60e1ff49ebb Mon Sep 17 00:00:00 2001 From: Till Faelligen <2353100+S7evinK@users.noreply.github.com> Date: Mon, 8 Aug 2022 08:05:22 +0200 Subject: [PATCH] Check actual postgres error --- keyserver/storage/postgres/key_changes_table.go | 12 ++++++++++++ roomserver/storage/postgres/storage.go | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/keyserver/storage/postgres/key_changes_table.go b/keyserver/storage/postgres/key_changes_table.go index d1da49388..23f525b7a 100644 --- a/keyserver/storage/postgres/key_changes_table.go +++ b/keyserver/storage/postgres/key_changes_table.go @@ -18,6 +18,8 @@ import ( "context" "database/sql" + "github.com/lib/pq" + "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/dendrite/internal/sqlutil" "github.com/matrix-org/dendrite/keyserver/storage/postgres/deltas" @@ -73,6 +75,16 @@ func NewPostgresKeyChangesTable(db *sql.DB) (tables.KeyChanges, error) { Up: deltas.UpRefactorKeyChanges, }) return s, m.Up(context.Background()) + } else { + switch e := err.(type) { + case *pq.Error: + // ignore undefined_column (42703) errors, as this is expected at this point + if e.Code == "42703" { + return s, nil + } + default: + return nil, err + } } return s, nil } diff --git a/roomserver/storage/postgres/storage.go b/roomserver/storage/postgres/storage.go index c8e385aa3..f47a64c80 100644 --- a/roomserver/storage/postgres/storage.go +++ b/roomserver/storage/postgres/storage.go @@ -19,6 +19,7 @@ import ( "database/sql" "fmt" + "github.com/lib/pq" // Import the postgres database driver. _ "github.com/lib/pq" @@ -65,6 +66,16 @@ func Open(base *base.BaseDendrite, dbProperties *config.DatabaseOptions, cache c if err = m.Up(base.Context()); err != nil { return nil, err } + } else { + switch e := err.(type) { + case *pq.Error: + // ignore undefined_column (42703) errors, as this is expected at this point + if e.Code != "42703" { + return nil, err + } + default: + return nil, err + } } // Then prepare the statements. Now that the migrations have run, any columns referred