mirror of
https://code.sup39.dev/repos/Wqawg
synced 2024-12-27 17:04:52 +09:00
DB: Attach a RemoteDiscussion to each RemoteTicket, for caching comments
This commit is contained in:
parent
6c8b9664a2
commit
23056b3b3c
5 changed files with 82 additions and 4 deletions
|
@ -368,9 +368,11 @@ LocalTicket
|
||||||
RemoteTicket
|
RemoteTicket
|
||||||
ticket TicketAuthorRemoteId
|
ticket TicketAuthorRemoteId
|
||||||
ident RemoteObjectId
|
ident RemoteObjectId
|
||||||
|
discuss RemoteDiscussionId
|
||||||
|
|
||||||
UniqueRemoteTicket ticket
|
UniqueRemoteTicket ticket
|
||||||
UniqueRemoteTicketIdent ident
|
UniqueRemoteTicketIdent ident
|
||||||
|
UniqueRemoteTicketDiscuss discuss
|
||||||
|
|
||||||
TicketProjectLocal
|
TicketProjectLocal
|
||||||
ticket TicketId
|
ticket TicketId
|
||||||
|
|
27
migrations/2020_04_10_rt_rd.model
Normal file
27
migrations/2020_04_10_rt_rd.model
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
Instance
|
||||||
|
host Host
|
||||||
|
|
||||||
|
UniqueInstance host
|
||||||
|
|
||||||
|
RemoteObject
|
||||||
|
instance InstanceId
|
||||||
|
ident LocalURI
|
||||||
|
|
||||||
|
UniqueRemoteObject instance ident
|
||||||
|
|
||||||
|
RemoteTicket
|
||||||
|
ticket Int64
|
||||||
|
ident RemoteObjectId
|
||||||
|
discuss RemoteDiscussionId
|
||||||
|
|
||||||
|
UniqueRemoteTicket ticket
|
||||||
|
UniqueRemoteTicketIdent ident
|
||||||
|
|
||||||
|
Discussion
|
||||||
|
|
||||||
|
RemoteDiscussion
|
||||||
|
ident RemoteObjectId
|
||||||
|
discuss DiscussionId
|
||||||
|
|
||||||
|
UniqueRemoteDiscussionIdent ident
|
||||||
|
UniqueRemoteDiscussion discuss
|
|
@ -709,9 +709,16 @@ projectCreateTicketF now shrRecip prjRecip author body ticket muTarget = do
|
||||||
{ remoteObjectInstance = remoteAuthorInstance author
|
{ remoteObjectInstance = remoteAuthorInstance author
|
||||||
, remoteObjectIdent = luTicket
|
, remoteObjectIdent = luTicket
|
||||||
}
|
}
|
||||||
|
did <- insert Discussion
|
||||||
|
(rdid, rdnew) <- idAndNew <$> insertBy' RemoteDiscussion
|
||||||
|
{ remoteDiscussionIdent = roid
|
||||||
|
, remoteDiscussionDiscuss = did
|
||||||
|
}
|
||||||
|
unless rdnew $ delete did
|
||||||
mrtid <- insertUnique RemoteTicket
|
mrtid <- insertUnique RemoteTicket
|
||||||
{ remoteTicketTicket = tarid
|
{ remoteTicketTicket = tarid
|
||||||
, remoteTicketIdent = roid
|
, remoteTicketIdent = roid
|
||||||
|
, remoteTicketDiscuss = rdid
|
||||||
}
|
}
|
||||||
case mrtid of
|
case mrtid of
|
||||||
Nothing -> do
|
Nothing -> do
|
||||||
|
|
|
@ -1518,6 +1518,40 @@ changes hLocal ctx =
|
||||||
"RemoteActor"
|
"RemoteActor"
|
||||||
(Nothing :: Maybe Text)
|
(Nothing :: Maybe Text)
|
||||||
"followers"
|
"followers"
|
||||||
|
-- 238
|
||||||
|
, addFieldRefRequired''
|
||||||
|
"RemoteTicket"
|
||||||
|
(do iid <- insert $ Instance238 $ Authority "238.fake.fake" Nothing
|
||||||
|
roid <- insert $ RemoteObject238 iid $ LocalURI "/fake/238"
|
||||||
|
did <- insert Discussion238
|
||||||
|
insertEntity $ RemoteDiscussion238 roid did
|
||||||
|
)
|
||||||
|
(Just $ \ (Entity rdidTemp rdTemp) -> do
|
||||||
|
rtids <- selectList ([] :: [Filter RemoteTicket238]) []
|
||||||
|
for_ rtids $ \ (Entity rtid rt) -> do
|
||||||
|
let roid = remoteTicket238Ident rt
|
||||||
|
mrdid <- getKeyBy $ UniqueRemoteDiscussionIdent238 roid
|
||||||
|
rdid <-
|
||||||
|
case mrdid of
|
||||||
|
Nothing -> do
|
||||||
|
did <- insert Discussion238
|
||||||
|
insert $ RemoteDiscussion238 roid did
|
||||||
|
Just rdid -> return rdid
|
||||||
|
update rtid [RemoteTicket238Discuss =. rdid]
|
||||||
|
|
||||||
|
delete rdidTemp
|
||||||
|
|
||||||
|
let roidTemp = remoteDiscussion238Ident rdTemp
|
||||||
|
roTemp <- getJust roidTemp
|
||||||
|
delete roidTemp
|
||||||
|
delete $ remoteObject238Instance roTemp
|
||||||
|
|
||||||
|
delete $ remoteDiscussion238Discuss rdTemp
|
||||||
|
)
|
||||||
|
"discuss"
|
||||||
|
"RemoteDiscussion"
|
||||||
|
-- 239
|
||||||
|
, addUnique "RemoteTicket" $ Unique "UniqueRemoteTicketDiscuss" ["discuss"]
|
||||||
]
|
]
|
||||||
|
|
||||||
migrateDB
|
migrateDB
|
||||||
|
|
|
@ -183,6 +183,12 @@ module Vervis.Migration.Model
|
||||||
, model_2020_02_22
|
, model_2020_02_22
|
||||||
, model_2020_04_07
|
, model_2020_04_07
|
||||||
, model_2020_04_09
|
, model_2020_04_09
|
||||||
|
, RemoteTicket238
|
||||||
|
, RemoteTicket238Generic (..)
|
||||||
|
, Instance238Generic (..)
|
||||||
|
, RemoteObject238Generic (..)
|
||||||
|
, Discussion238Generic (..)
|
||||||
|
, RemoteDiscussion238Generic (..)
|
||||||
)
|
)
|
||||||
where
|
where
|
||||||
|
|
||||||
|
@ -363,3 +369,5 @@ model_2020_04_07 = $(schema "2020_04_07_tpra")
|
||||||
|
|
||||||
model_2020_04_09 :: [Entity SqlBackend]
|
model_2020_04_09 :: [Entity SqlBackend]
|
||||||
model_2020_04_09 = $(schema "2020_04_09_rt")
|
model_2020_04_09 = $(schema "2020_04_09_rt")
|
||||||
|
|
||||||
|
makeEntitiesMigration "238" $(modelFile "migrations/2020_04_10_rt_rd.model")
|
||||||
|
|
Loading…
Reference in a new issue