Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for missed migration #93

Merged
merged 1 commit into from
Sep 26, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions src/jetstream/datastore/20240818042100_RetryEndpointCACert.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package datastore

import (
"database/sql"
"log"

"github.com/pressly/goose"
)

func init() {
goose.AddMigration(Up20240818042100, nil)
}

func CheckIfMigrationExists(db *sql.Tx, migration string, args ...interface{}) (bool, error) {
query := "SELECT 1 FROM goose_db_version WHERE version_id = $1 LIMIT 1"
var exists bool
err := db.QueryRow(query, migration).Scan(&exists)
if err != nil && err != sql.ErrNoRows {
return false, err
}
return err != sql.ErrNoRows, nil
}

func Up20240818042100(txn *sql.Tx) error {
// When upgrading from 4.4.x, the migration 20201201163100 was not applied because 20210201110000 was already present.
exists, err := CheckIfMigrationExists(txn, "20201201163100")
if err != nil {
return err
}

if !exists {
log.Printf("Migration 20201201163100 has not been applied. Adding missing entries.")
createCertColumn := "ALTER TABLE cnsis ADD ca_cert TEXT"
_, err := txn.Exec(createCertColumn)
if err != nil {
return err
}

createEnableColumn := "ALTER TABLE tokens ADD enabled BOOLEAN NOT NULL DEFAULT TRUE"
_, err = txn.Exec(createEnableColumn)
if err != nil {
return err
}
} else {
// Migration has already been applied
log.Printf("Migration 20201201163100 has been applied.")
return nil
}
return nil
}
Loading