2019-08-25-move-state-store-to-db.go 907 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package upgrades
  2. import (
  3. "database/sql"
  4. "strings"
  5. )
  6. func init() {
  7. userProfileTable := `CREATE TABLE mx_user_profile (
  8. room_id VARCHAR(255),
  9. user_id VARCHAR(255),
  10. membership VARCHAR(15) NOT NULL,
  11. PRIMARY KEY (room_id, user_id)
  12. )`
  13. roomStateTable := `CREATE TABLE mx_room_state (
  14. room_id VARCHAR(255) PRIMARY KEY,
  15. power_levels TEXT
  16. )`
  17. registrationsTable := `CREATE TABLE mx_registrations (
  18. user_id VARCHAR(255) PRIMARY KEY
  19. )`
  20. upgrades[9] = upgrade{"Move state store to main DB", func(tx *sql.Tx, ctx context) error {
  21. if ctx.dialect == Postgres {
  22. roomStateTable = strings.Replace(roomStateTable, "TEXT", "JSONB", 1)
  23. }
  24. if _, err := tx.Exec(userProfileTable); err != nil {
  25. return err
  26. } else if _, err = tx.Exec(roomStateTable); err != nil {
  27. return err
  28. } else if _, err = tx.Exec(registrationsTable); err != nil {
  29. return err
  30. }
  31. return nil
  32. }}
  33. }