Smail/backend/db/migration/email_thread.go

28 lines
721 B
Go

package migration
import (
"context"
"fmt"
)
func applyEmailThreadSchema(ctx context.Context, exec executor, dialect Dialect) error {
var idDefinition string
switch dialect {
case DialectSQLite:
idDefinition = "INTEGER NOT NULL DEFAULT 0"
case DialectMySQL, DialectPostgres:
idDefinition = "BIGINT NOT NULL DEFAULT 0"
default:
return fmt.Errorf("unsupported email thread dialect %q", dialect)
}
if err := ensureColumn(ctx, exec, dialect, "email", "reply_email_id", idDefinition); err != nil {
return err
}
for _, column := range []string{"in_reply_to", "thread_references"} {
if err := ensureColumn(ctx, exec, dialect, "email", column, "TEXT NULL"); err != nil {
return err
}
}
return nil
}