Smail/backend/db/migration/email_thread.go
smail d5073cccbe
Some checks are pending
Security Checks / security (push) Waiting to run
保存邮件回复链路接入界面前的开发检查点
2026-09-27 20:48:33 +08:00

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
}