module Galley.Schema.V21
( migration,
)
where
import Cassandra.Schema
import Imports
import Text.RawString.QQ
migration :: Migration
migration :: Migration
migration = Int32 -> Text -> Client () -> Migration
Migration Int32
21 Text
"Add teams" (Client () -> Migration) -> Client () -> Migration
forall a b. (a -> b) -> a -> b
$ do
Text -> Client ()
schema'
Text
[r|
CREATE TABLE team (
team uuid PRIMARY KEY,
creator uuid,
name text,
icon text,
icon_key text,
deleted boolean
) WITH compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND gc_grace_seconds = 864000;
|]
Text -> Client ()
schema'
Text
[r|
CREATE TABLE team_conv (
team uuid,
conv uuid,
managed boolean,
PRIMARY KEY (team, conv)
) WITH CLUSTERING ORDER BY (conv ASC)
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND gc_grace_seconds = 864000;
|]
Text -> Client ()
schema' Text
[r| CREATE TYPE permissions (self bigint, copy bigint); |]
Text -> Client ()
schema'
Text
[r|
CREATE TABLE team_member (
team uuid,
user uuid,
perms frozen<permissions>,
PRIMARY KEY (team, user)
) WITH CLUSTERING ORDER BY (user ASC)
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND gc_grace_seconds = 864000;
|]
Text -> Client ()
schema'
Text
[r|
CREATE TABLE user_team (
user uuid,
team uuid,
PRIMARY KEY (user, team)
) WITH CLUSTERING ORDER BY (team ASC)
AND compaction = {'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
AND gc_grace_seconds = 864000;
|]
Text -> Client ()
schema' Text
[r| ALTER TABLE conversation ADD team uuid; |]
Text -> Client ()
schema' Text
[r| ALTER TABLE conversation ADD deleted boolean; |]