Skip to content

Commit

Permalink
fix(setup): update chunks in step 11 (#5965)
Browse files Browse the repository at this point in the history
  • Loading branch information
adlerhurst committed Jun 2, 2023
1 parent c8b0e5a commit ebca7b6
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 16 deletions.
66 changes: 65 additions & 1 deletion cmd/setup/11.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,25 @@ package setup

import (
"context"
"database/sql"
_ "embed"
"time"

"github.com/cockroachdb/cockroach-go/v2/crdb"
"github.com/zitadel/logging"

"github.com/zitadel/zitadel/internal/database"
)

var (
//go:embed 11.sql
//go:embed 11/11_add_column.sql
addEventCreatedAt string
//go:embed 11/11_fetch_events.sql
fetchCreatedAt string
//go:embed 11/11_fill_column.sql
fillCreatedAt string
//go:embed 11/11_set_column.sql
setCreatedAtDetails string
)

type AddEventCreatedAt struct {
Expand All @@ -24,6 +35,59 @@ func (mig *AddEventCreatedAt) Execute(ctx context.Context) error {
return err
}
_, err := mig.dbClient.ExecContext(ctx, addEventCreatedAt)
if err != nil {
return err
}

for {
var count int
err = crdb.ExecuteTx(ctx, mig.dbClient.DB, nil, func(tx *sql.Tx) error {
rows, err := tx.Query(fetchCreatedAt)
if err != nil {
return err
}
defer rows.Close()

data := make(map[string]time.Time, 20)
for rows.Next() {
count++
var (
id string
creationDate time.Time
)

err = rows.Scan(&id, &creationDate)
if err != nil {
return err
}

data[id] = creationDate

}
if err := rows.Err(); err != nil {
return err
}

for id, creationDate := range data {
_, err = tx.Exec(fillCreatedAt, creationDate, id)
if err != nil {
return err
}
}

return nil
})
if err != nil {
return err
}
logging.WithFields("count", count).Debug("creation dates set")
if count < 20 {
break
}
}

logging.Info("set details")
_, err = mig.dbClient.ExecContext(ctx, setCreatedAtDetails)
return err
}

Expand Down
15 changes: 0 additions & 15 deletions cmd/setup/11.sql

This file was deleted.

6 changes: 6 additions & 0 deletions cmd/setup/11/11_add_column.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
BEGIN;
-- create table with empty created_at
ALTER TABLE eventstore.events ADD COLUMN IF NOT EXISTS created_at TIMESTAMPTZ DEFAULT NULL;
-- set column rules
ALTER TABLE eventstore.events ALTER COLUMN created_at SET DEFAULT clock_timestamp();
COMMIT;
1 change: 1 addition & 0 deletions cmd/setup/11/11_fetch_events.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SELECT id, creation_date FROM eventstore.events WHERE created_at IS NULL ORDER BY event_sequence DESC, instance_id LIMIT 20 FOR UPDATE
1 change: 1 addition & 0 deletions cmd/setup/11/11_fill_column.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
UPDATE eventstore.events SET created_at = $1 WHERE id = $2
3 changes: 3 additions & 0 deletions cmd/setup/11/11_set_column.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
BEGIN;
ALTER TABLE eventstore.events ALTER COLUMN created_at SET NOT NULL;
COMMIT;

1 comment on commit ebca7b6

@vercel
Copy link

@vercel vercel bot commented on ebca7b6 Jun 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Successfully deployed to the following URLs:

docs – ./

docs-zitadel.vercel.app
docs-git-main-zitadel.vercel.app
zitadel-docs.vercel.app

Please sign in to comment.