v0.4.0.go 760 B

1234567891011121314151617181920212223242526
  1. package migrations
  2. import (
  3. "github.com/jmoiron/sqlx"
  4. "github.com/knadh/koanf"
  5. "github.com/knadh/stuffbin"
  6. )
  7. // V0_4_0 performs the DB migrations for v.0.4.0.
  8. func V0_4_0(db *sqlx.DB, fs stuffbin.FileSystem, ko *koanf.Koanf) error {
  9. _, err := db.Exec(`
  10. DO $$
  11. BEGIN
  12. IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'list_optin') THEN
  13. CREATE TYPE list_optin AS ENUM ('single', 'double');
  14. END IF;
  15. IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'campaign_type') THEN
  16. CREATE TYPE campaign_type AS ENUM ('regular', 'optin');
  17. END IF;
  18. END$$;
  19. ALTER TABLE lists ADD COLUMN IF NOT EXISTS optin list_optin NOT NULL DEFAULT 'single';
  20. ALTER TABLE campaigns ADD COLUMN IF NOT EXISTS type campaign_type DEFAULT 'regular';
  21. `)
  22. return err
  23. }