2022-02-10-message-error-string.go 795 B

123456789101112131415161718192021222324252627282930
  1. package upgrades
  2. import "database/sql"
  3. func init() {
  4. upgrades[36] = upgrade{"Store message error type as string", func(tx *sql.Tx, ctx context) error {
  5. if ctx.dialect == Postgres {
  6. _, err := tx.Exec("CREATE TYPE error_type AS ENUM ('', 'decryption_failed', 'media_not_found')")
  7. if err != nil {
  8. return err
  9. }
  10. }
  11. _, err := tx.Exec("ALTER TABLE message ADD COLUMN error error_type NOT NULL DEFAULT ''")
  12. if err != nil {
  13. return err
  14. }
  15. _, err = tx.Exec("UPDATE message SET error='decryption_failed' WHERE decryption_error=true")
  16. if err != nil {
  17. return err
  18. }
  19. if ctx.dialect == Postgres {
  20. // TODO do this on sqlite at some point
  21. _, err = tx.Exec("ALTER TABLE message DROP COLUMN decryption_error")
  22. if err != nil {
  23. return err
  24. }
  25. }
  26. return nil
  27. }}
  28. }