fix(setup): optimise events indexes (#5316)

This commit is contained in:
Silvan
2023-03-01 01:11:23 +01:00
committed by GitHub
parent 48f9815b7c
commit 3dbb6f7c67
10 changed files with 196 additions and 32 deletions

View File

@@ -1,36 +1,23 @@
package setup
import (
"context"
"database/sql"
"embed"
"github.com/zitadel/zitadel/internal/database"
)
var (
//go:embed 04/cockroach/index.sql
//go:embed 04/postgres/index.sql
stmts embed.FS
stmts04 embed.FS
)
type EventstoreIndexes struct {
dbClient *sql.DB
dbType string
}
func (mig *EventstoreIndexes) Execute(ctx context.Context) error {
stmt, err := readStmt(stmts, "04", mig.dbType, "index.sql")
if err != nil {
return err
func New04(db *database.DB) *EventstoreIndexesNew {
return &EventstoreIndexesNew{
dbClient: db,
name: "04_eventstore_indexes",
step: "04",
fileName: "index.sql",
stmts: stmts04,
}
_, err = mig.dbClient.ExecContext(ctx, stmt)
return err
}
func (mig *EventstoreIndexes) String() string {
return "04_eventstore_indexes"
}
func readStmt(fs embed.FS, folder, typ, filename string) (string, error) {
stmt, err := fs.ReadFile(folder + "/" + typ + "/" + filename)
return string(stmt), err
}