mirror of
https://github.com/element-hq/dendrite.git
synced 2025-09-13 21:02:25 +03:00
mas: add missing migration for adding x-signing updatable_without_uia_before_ms field
This commit is contained in:
parent
0be9b3ca54
commit
4cde3bafb1
4 changed files with 72 additions and 2 deletions
|
@ -12,6 +12,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/element-hq/dendrite/userapi/storage/postgres/deltas"
|
||||||
|
|
||||||
"github.com/element-hq/dendrite/internal"
|
"github.com/element-hq/dendrite/internal"
|
||||||
"github.com/element-hq/dendrite/internal/sqlutil"
|
"github.com/element-hq/dendrite/internal/sqlutil"
|
||||||
"github.com/element-hq/dendrite/userapi/storage/tables"
|
"github.com/element-hq/dendrite/userapi/storage/tables"
|
||||||
|
@ -25,7 +27,6 @@ CREATE TABLE IF NOT EXISTS keyserver_cross_signing_keys (
|
||||||
user_id TEXT NOT NULL,
|
user_id TEXT NOT NULL,
|
||||||
key_type SMALLINT NOT NULL,
|
key_type SMALLINT NOT NULL,
|
||||||
key_data TEXT NOT NULL,
|
key_data TEXT NOT NULL,
|
||||||
updatable_without_uia_before_ms BIGINT DEFAULT NULL,
|
|
||||||
PRIMARY KEY (user_id, key_type)
|
PRIMARY KEY (user_id, key_type)
|
||||||
);
|
);
|
||||||
`
|
`
|
||||||
|
@ -64,6 +65,17 @@ func NewPostgresCrossSigningKeysTable(db *sql.DB) (tables.CrossSigningKeys, erro
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
m := sqlutil.NewMigrator(db)
|
||||||
|
m.AddMigrations(
|
||||||
|
sqlutil.Migration{
|
||||||
|
Version: "userapi: add x-signing updatable_without_uia_before_ms",
|
||||||
|
Up: deltas.UpAddXSigningUpdatableWithoutUIABeforeMs,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
err = m.Up(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return s, sqlutil.StatementList{
|
return s, sqlutil.StatementList{
|
||||||
{&s.selectCrossSigningKeysForUserStmt, selectCrossSigningKeysForUserSQL},
|
{&s.selectCrossSigningKeysForUserStmt, selectCrossSigningKeysForUserSQL},
|
||||||
{&s.selectCrossSigningKeysForUserAndKeyTypeStmt, selectCrossSigningKeysForUserAndKeyTypeSQL},
|
{&s.selectCrossSigningKeysForUserAndKeyTypeStmt, selectCrossSigningKeysForUserAndKeyTypeSQL},
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package deltas
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
func UpAddXSigningUpdatableWithoutUIABeforeMs(ctx context.Context, tx *sql.Tx) error {
|
||||||
|
_, err := tx.ExecContext(ctx, `ALTER TABLE keyserver_cross_signing_keys ADD COLUMN IF NOT EXISTS updatable_without_uia_before_ms BIGINT DEFAULT NULL;`)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to execute upgrade: %w", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func DownAddXSigningUpdatableWithoutUIABeforeMs(ctx context.Context, tx *sql.Tx) error {
|
||||||
|
_, err := tx.ExecContext(ctx, `ALTER TABLE keyserver_cross_signing_keys DROP COLUMN IF EXISTS updatable_without_uia_before_ms;`)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to execute downgrade: %w", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -12,6 +12,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/element-hq/dendrite/userapi/storage/sqlite3/deltas"
|
||||||
|
|
||||||
"github.com/element-hq/dendrite/internal"
|
"github.com/element-hq/dendrite/internal"
|
||||||
"github.com/element-hq/dendrite/internal/sqlutil"
|
"github.com/element-hq/dendrite/internal/sqlutil"
|
||||||
"github.com/element-hq/dendrite/userapi/storage/tables"
|
"github.com/element-hq/dendrite/userapi/storage/tables"
|
||||||
|
@ -25,7 +27,6 @@ CREATE TABLE IF NOT EXISTS keyserver_cross_signing_keys (
|
||||||
user_id TEXT NOT NULL,
|
user_id TEXT NOT NULL,
|
||||||
key_type INTEGER NOT NULL,
|
key_type INTEGER NOT NULL,
|
||||||
key_data TEXT NOT NULL,
|
key_data TEXT NOT NULL,
|
||||||
updatable_without_uia_before_ms BIGINT DEFAULT NULL,
|
|
||||||
PRIMARY KEY (user_id, key_type)
|
PRIMARY KEY (user_id, key_type)
|
||||||
);
|
);
|
||||||
`
|
`
|
||||||
|
@ -63,6 +64,17 @@ func NewSqliteCrossSigningKeysTable(db *sql.DB) (tables.CrossSigningKeys, error)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
m := sqlutil.NewMigrator(db)
|
||||||
|
m.AddMigrations(
|
||||||
|
sqlutil.Migration{
|
||||||
|
Version: "userapi: add x-signing updatable_without_uia_before_ms",
|
||||||
|
Up: deltas.UpAddXSigningUpdatableWithoutUIABeforeMs,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
err = m.Up(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
return s, sqlutil.StatementList{
|
return s, sqlutil.StatementList{
|
||||||
{&s.selectCrossSigningKeysForUserStmt, selectCrossSigningKeysForUserSQL},
|
{&s.selectCrossSigningKeysForUserStmt, selectCrossSigningKeysForUserSQL},
|
||||||
{&s.selectCrossSigningKeysForUserAndKeyTypeStmt, selectCrossSigningKeysForUserAndKeyTypeSQL},
|
{&s.selectCrossSigningKeysForUserAndKeyTypeStmt, selectCrossSigningKeysForUserAndKeyTypeSQL},
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
package deltas
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
func UpAddXSigningUpdatableWithoutUIABeforeMs(ctx context.Context, tx *sql.Tx) error {
|
||||||
|
_, err := tx.ExecContext(ctx, `ALTER TABLE keyserver_cross_signing_keys ADD COLUMN updatable_without_uia_before_ms BIGINT DEFAULT NULL;`)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to execute upgrade: %w", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func DownAddXSigningUpdatableWithoutUIABeforeMs(ctx context.Context, tx *sql.Tx) error {
|
||||||
|
_, err := tx.ExecContext(ctx, `ALTER TABLE keyserver_cross_signing_keys DROP COLUMN updatable_without_uia_before_ms;`)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to execute downgrade: %w", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue