DB: Split migration model module + remove DestUsGatherTo* entities

This commit is contained in:
Pere Lev 2024-04-14 15:06:50 +03:00
parent 97b675130f
commit b47941af97
No known key found for this signature in database
GPG key ID: 5252C5C863E5E57D
13 changed files with 952 additions and 618 deletions

View file

@ -0,0 +1,5 @@
SourceUsGather
SourceUsGatherFromLocal
SourceUsGatherFromRemote
SourceUsGatherToLocal
SourceUsGatherToRemote

View file

@ -1195,8 +1195,6 @@ projectAccept now projectID (Verse authorIdMsig body) accept = do
let gatherIDs = map entityKey gathers let gatherIDs = map entityKey gathers
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs] deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs] deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherToRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs] deleteWhere [SourceUsGatherId <-. gatherIDs]
let leafIDs = map entityKey leafs let leafIDs = map entityKey leafs
deleteWhere [SourceUsLeafFromLocalLeaf <-. leafIDs] deleteWhere [SourceUsLeafFromLocalLeaf <-. leafIDs]
@ -1253,7 +1251,8 @@ projectAccept now projectID (Verse authorIdMsig body) accept = do
_luRevoke <- updateOutboxItem' recipByKey revokeID actionRevoke _luRevoke <- updateOutboxItem' recipByKey revokeID actionRevoke
-- Prepare and insert Revokes on all the extension-Grants -- Prepare and insert Revokes on all the extension-Grants
revokesG <- for gathers $ \ (Entity _ (SourceUsGather _ acceptID grantID)) -> do revokesG <- for gathers $ \ (Entity _ (SourceUsGather _ startID grantID)) -> do
DestUsStart acceptID _ <- getJust startID
DestUsAccept destID _ <- getJust acceptID DestUsAccept destID _ <- getJust acceptID
parent <- do parent <- do
p <- getDestTopic destID p <- getDestTopic destID
@ -3053,13 +3052,12 @@ projectGrant now projectID (Verse authorIdMsig body) grant = do
, accept E.^. DestUsAcceptId , accept E.^. DestUsAcceptId
, start E.^. DestUsStartId , start E.^. DestUsStartId
) )
localExtensionsForParents <- lift $ for localParents $ \ (E.Value role', E.Value parentID, E.Value delegID, E.Value grantID, E.Value acceptID, E.Value startID) -> do localExtensionsForParents <- lift $ for localParents $ \ (E.Value role', E.Value parentID, E.Value _delegID, E.Value grantID, E.Value _acceptID, E.Value startID) -> do
extID <- insertEmptyOutboxItem' (actorOutbox recipActor) now extID <- insertEmptyOutboxItem' (actorOutbox recipActor) now
gatherID <- insert $ SourceUsGather sendID acceptID extID gatherID <- insert $ SourceUsGather sendID startID extID
case from of case from of
Left localID -> insert_ $ SourceUsGatherFromLocal gatherID localID Left localID -> insert_ $ SourceUsGatherFromLocal gatherID localID
Right remoteID -> insert_ $ SourceUsGatherFromRemote gatherID remoteID Right remoteID -> insert_ $ SourceUsGatherFromRemote gatherID remoteID
insert_ $ SourceUsGatherToLocal gatherID delegID
ext@(actionExt, _, _, _) <- ext@(actionExt, _, _, _) <-
prepareExtensionGrantForParent (Left (parentID, grantID)) (min role role') startID prepareExtensionGrantForParent (Left (parentID, grantID)) (min role role') startID
let recipByKey = LocalActorProject projectID let recipByKey = LocalActorProject projectID
@ -3083,13 +3081,12 @@ projectGrant now projectID (Verse authorIdMsig body) grant = do
, accept E.^. DestUsAcceptId , accept E.^. DestUsAcceptId
, start E.^. DestUsStartId , start E.^. DestUsStartId
) )
remoteExtensionsForParents <- lift $ for remoteParents $ \ (E.Value role', E.Value parentID, E.Value delegID, E.Value grantID, E.Value acceptID, E.Value startID) -> do remoteExtensionsForParents <- lift $ for remoteParents $ \ (E.Value role', E.Value parentID, E.Value _delegID, E.Value grantID, E.Value _acceptID, E.Value startID) -> do
extID <- insertEmptyOutboxItem' (actorOutbox recipActor) now extID <- insertEmptyOutboxItem' (actorOutbox recipActor) now
gatherID <- insert $ SourceUsGather sendID acceptID extID gatherID <- insert $ SourceUsGather sendID startID extID
case from of case from of
Left localID -> insert_ $ SourceUsGatherFromLocal gatherID localID Left localID -> insert_ $ SourceUsGatherFromLocal gatherID localID
Right remoteID -> insert_ $ SourceUsGatherFromRemote gatherID remoteID Right remoteID -> insert_ $ SourceUsGatherFromRemote gatherID remoteID
insert_ $ SourceUsGatherToRemote gatherID delegID
ext@(actionExt, _, _, _) <- ext@(actionExt, _, _, _) <-
prepareExtensionGrantForParent (Right (parentID, grantID)) (min role role') startID prepareExtensionGrantForParent (Right (parentID, grantID)) (min role role') startID
let recipByKey = LocalActorProject projectID let recipByKey = LocalActorProject projectID
@ -3434,13 +3431,10 @@ projectGrant now projectID (Verse authorIdMsig body) grant = do
fromChildren <- lift $ for (l ++ r) $ \ (E.Value sendID, deleg) -> do fromChildren <- lift $ for (l ++ r) $ \ (E.Value sendID, deleg) -> do
extID <- insertEmptyOutboxItem' (actorOutbox recipActor) now extID <- insertEmptyOutboxItem' (actorOutbox recipActor) now
gatherID <- insert $ SourceUsGather sendID acceptID extID gatherID <- insert $ SourceUsGather sendID destStartID extID
case bimap entityKey entityKey deleg of case bimap entityKey entityKey deleg of
Left localID -> insert_ $ SourceUsGatherFromLocal gatherID localID Left localID -> insert_ $ SourceUsGatherFromLocal gatherID localID
Right remoteID -> insert_ $ SourceUsGatherFromRemote gatherID remoteID Right remoteID -> insert_ $ SourceUsGatherFromRemote gatherID remoteID
case to of
Left localID -> insert_ $ SourceUsGatherToLocal gatherID localID
Right remoteID -> insert_ $ SourceUsGatherToRemote gatherID remoteID
(AP.Doc h a, grant) <- getGrantActivityBody $ bimap (sourceThemDelegateLocalGrant . entityVal) (sourceThemDelegateRemoteGrant . entityVal) deleg (AP.Doc h a, grant) <- getGrantActivityBody $ bimap (sourceThemDelegateLocalGrant . entityVal) (sourceThemDelegateRemoteGrant . entityVal) deleg
uStart <- uStart <-
@ -4307,8 +4301,6 @@ projectRemove now projectID (Verse authorIdMsig body) remove = do
let gatherIDs = map entityKey gathers let gatherIDs = map entityKey gathers
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs] deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs] deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherToRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs] deleteWhere [SourceUsGatherId <-. gatherIDs]
let leafIDs = map entityKey leafs let leafIDs = map entityKey leafs
deleteWhere [SourceUsLeafFromLocalLeaf <-. leafIDs] deleteWhere [SourceUsLeafFromLocalLeaf <-. leafIDs]
@ -4360,7 +4352,8 @@ projectRemove now projectID (Verse authorIdMsig body) remove = do
_luRevoke <- updateOutboxItem' recipByKey revokeID actionRevoke _luRevoke <- updateOutboxItem' recipByKey revokeID actionRevoke
-- Prepare and insert Revokes on all the extension-Grants -- Prepare and insert Revokes on all the extension-Grants
revokesG <- for gathers $ \ (Entity _ (SourceUsGather _ acceptID grantID)) -> do revokesG <- for gathers $ \ (Entity _ (SourceUsGather _ startID grantID)) -> do
DestUsStart acceptID _ <- getJust startID
DestUsAccept destID _ <- getJust acceptID DestUsAccept destID _ <- getJust acceptID
parent <- do parent <- do
p <- getDestTopic destID p <- getDestTopic destID
@ -4539,11 +4532,13 @@ projectRemove now projectID (Verse authorIdMsig body) remove = do
p <- getJust projectID p <- getJust projectID
(p,) <$> getJust (projectActor p) (p,) <$> getJust (projectActor p)
-- Verify it's an active child of mine -- Verify it's an active parent of mine
dests <- lift $ case parentDB of dests <- lift $ case parentDB of
Left (Entity j _) -> Left (Entity j _) ->
fmap (map $ \ (d, h, a, E.Value l, E.Value t, E.Value s) -> (d, h, a, Left (l, t, s))) $ fmap (map $ \ (d, h, a, z, E.Value l, E.Value t, E.Value s) -> (d, h, a, z, Left (l, t, s))) $
E.select $ E.from $ \ (dest `E.InnerJoin` holder `E.InnerJoin` topic `E.InnerJoin` send) -> do E.select $ E.from $ \ (dest `E.InnerJoin` holder `E.InnerJoin` topic `E.InnerJoin` send `E.InnerJoin` accept `E.InnerJoin` start) -> do
E.on $ accept E.^. DestUsAcceptId E.==. start E.^. DestUsStartDest
E.on $ dest E.^. DestId E.==. accept E.^. DestUsAcceptDest
E.on $ topic E.^. DestTopicProjectTopic E.==. send E.^. DestThemSendDelegatorLocalTopic E.on $ topic E.^. DestTopicProjectTopic E.==. send E.^. DestThemSendDelegatorLocalTopic
E.on $ holder E.^. DestHolderProjectId E.==. topic E.^. DestTopicProjectHolder E.on $ holder E.^. DestHolderProjectId E.==. topic E.^. DestTopicProjectHolder
E.on $ dest E.^. DestId E.==. holder E.^. DestHolderProjectDest E.on $ dest E.^. DestId E.==. holder E.^. DestHolderProjectDest
@ -4554,13 +4549,16 @@ projectRemove now projectID (Verse authorIdMsig body) remove = do
( dest E.^. DestId ( dest E.^. DestId
, holder E.^. DestHolderProjectId , holder E.^. DestHolderProjectId
, send E.^. DestThemSendDelegatorLocalDest , send E.^. DestThemSendDelegatorLocalDest
, start E.^. DestUsStartId
, topic E.^. DestTopicProjectTopic , topic E.^. DestTopicProjectTopic
, topic E.^. DestTopicProjectId , topic E.^. DestTopicProjectId
, send E.^. DestThemSendDelegatorLocalId , send E.^. DestThemSendDelegatorLocalId
) )
Right (_, Entity a _) -> Right (_, Entity a _) ->
fmap (map $ \ (d, h, a, E.Value t, E.Value s) -> (d, h, a, Right (t, s))) $ fmap (map $ \ (d, h, a, z, E.Value t, E.Value s) -> (d, h, a, z, Right (t, s))) $
E.select $ E.from $ \ (dest `E.InnerJoin` holder `E.InnerJoin` topic `E.InnerJoin` send) -> do E.select $ E.from $ \ (dest `E.InnerJoin` holder `E.InnerJoin` topic `E.InnerJoin` send `E.InnerJoin` accept `E.InnerJoin` start) -> do
E.on $ accept E.^. DestUsAcceptId E.==. start E.^. DestUsStartDest
E.on $ dest E.^. DestId E.==. accept E.^. DestUsAcceptDest
E.on $ topic E.^. DestTopicRemoteId E.==. send E.^. DestThemSendDelegatorRemoteTopic E.on $ topic E.^. DestTopicRemoteId E.==. send E.^. DestThemSendDelegatorRemoteTopic
E.on $ dest E.^. DestId E.==. topic E.^. DestTopicRemoteDest E.on $ dest E.^. DestId E.==. topic E.^. DestTopicRemoteDest
E.on $ dest E.^. DestId E.==. holder E.^. DestHolderProjectDest E.on $ dest E.^. DestId E.==. holder E.^. DestHolderProjectDest
@ -4571,11 +4569,12 @@ projectRemove now projectID (Verse authorIdMsig body) remove = do
( dest E.^. DestId ( dest E.^. DestId
, holder E.^. DestHolderProjectId , holder E.^. DestHolderProjectId
, send E.^. DestThemSendDelegatorRemoteDest , send E.^. DestThemSendDelegatorRemoteDest
, start E.^. DestUsStartId
, topic E.^. DestTopicRemoteId , topic E.^. DestTopicRemoteId
, send E.^. DestThemSendDelegatorRemoteId , send E.^. DestThemSendDelegatorRemoteId
) )
(E.Value destID, E.Value holderID, E.Value usAcceptID, topic) <- (E.Value destID, E.Value holderID, E.Value usAcceptID, E.Value destStartID, topic) <-
verifySingleE dests "No dest" "Multiple dests" verifySingleE dests "No dest" "Multiple dests"
maybeRemoveDB <- lift $ insertToInbox now authorIdMsig body (actorInbox actorRecip) False maybeRemoveDB <- lift $ insertToInbox now authorIdMsig body (actorInbox actorRecip) False
@ -4589,26 +4588,13 @@ projectRemove now projectID (Verse authorIdMsig body) remove = do
deleteWhere [ComponentGatherRemoteParent ==. sendID] deleteWhere [ComponentGatherRemoteParent ==. sendID]
-- Delete uses of this Dest from my Source records -- Delete uses of this Dest from my Source records
case topic of gatherIDs <- selectKeysList [SourceUsGatherDest ==. destStartID] []
Left (_, _, sendID) -> do deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
gatherIDs <- deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
map (sourceUsGatherToLocalGather . entityVal) <$> deleteWhere [SourceUsGatherId <-. gatherIDs]
selectList [SourceUsGatherToLocalTo ==. sendID] []
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs]
Right (_, sendID) -> do
gatherIDs <-
map (sourceUsGatherToRemoteGather . entityVal) <$>
selectList [SourceUsGatherToRemoteTo ==. sendID] []
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs]
-- Delete the whole Dest record -- Delete the whole Dest record
deleteBy $ UniqueDestUsStart usAcceptID delete destStartID
case topic of case topic of
Left (_, _, sendID) -> delete sendID Left (_, _, sendID) -> delete sendID
Right (_, sendID) -> delete sendID Right (_, sendID) -> delete sendID
@ -5017,27 +5003,17 @@ projectRevoke now projectID (Verse authorIdMsig body) (AP.Revoke (luFirst :| lus
Right sendID -> Right sendID ->
deleteWhere [ComponentGatherRemoteParent ==. sendID] deleteWhere [ComponentGatherRemoteParent ==. sendID]
maybeStartID <- getKeyBy $ UniqueDestUsStart usAcceptID
-- Delete uses of this Dest from my Source records -- Delete uses of this Dest from my Source records
case send of for_ maybeStartID $ \ destStartID -> do
Left sendID -> do gatherIDs <- selectKeysList [SourceUsGatherDest ==. destStartID] []
gatherIDs <- deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
map (sourceUsGatherToLocalGather . entityVal) <$> deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
selectList [SourceUsGatherToLocalTo ==. sendID] [] deleteWhere [SourceUsGatherId <-. gatherIDs]
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs]
Right sendID -> do
gatherIDs <-
map (sourceUsGatherToRemoteGather . entityVal) <$>
selectList [SourceUsGatherToRemoteTo ==. sendID] []
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs]
-- Delete the whole Dest record -- Delete the whole Dest record
deleteBy $ UniqueDestUsStart usAcceptID for_ maybeStartID delete
case send of case send of
Left sendID -> delete sendID Left sendID -> delete sendID
Right sendID -> delete sendID Right sendID -> delete sendID
@ -5162,8 +5138,6 @@ projectRevoke now projectID (Verse authorIdMsig body) (AP.Revoke (luFirst :| lus
-- Delete the records of these extensions -- Delete the records of these extensions
deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs] deleteWhere [SourceUsGatherFromLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs] deleteWhere [SourceUsGatherFromRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherToLocalGather <-. gatherIDs]
deleteWhere [SourceUsGatherToRemoteGather <-. gatherIDs]
deleteWhere [SourceUsGatherId <-. gatherIDs] deleteWhere [SourceUsGatherId <-. gatherIDs]
deleteWhere [SourceUsLeafFromLocalLeaf <-. leafIDs] deleteWhere [SourceUsLeafFromLocalLeaf <-. leafIDs]
deleteWhere [SourceUsLeafFromRemoteLeaf <-. leafIDs] deleteWhere [SourceUsLeafFromRemoteLeaf <-. leafIDs]
@ -5175,7 +5149,8 @@ projectRevoke now projectID (Verse authorIdMsig body) (AP.Revoke (luFirst :| lus
Right (_, _, delegID, _) -> delete delegID Right (_, _, delegID, _) -> delete delegID
-- Prepare and insert Revokes on all the extension-Grants -- Prepare and insert Revokes on all the extension-Grants
revokesG <- for gathers $ \ (Entity _ (SourceUsGather _ acceptID grantID)) -> do revokesG <- for gathers $ \ (Entity _ (SourceUsGather _ startID grantID)) -> do
DestUsStart acceptID _ <- getJust startID
DestUsAccept destID _ <- getJust acceptID DestUsAccept destID _ <- getJust acceptID
parent <- do parent <- do
p <- getDestTopic destID p <- getDestTopic destID

View file

@ -90,7 +90,13 @@ import Vervis.Model.Ticket
import Vervis.Model.Workflow import Vervis.Model.Workflow
import Vervis.Foundation (App (..), Route (..)) import Vervis.Foundation (App (..), Route (..))
import Vervis.Migration.Entities import Vervis.Migration.Entities
import Vervis.Migration.Model import Vervis.Migration.Model2016
import Vervis.Migration.Model2018
import Vervis.Migration.Model2019
import Vervis.Migration.Model2020
import Vervis.Migration.Model2022
import Vervis.Migration.Model2023
import Vervis.Migration.Model2024
import Vervis.Settings import Vervis.Settings
instance PersistDefault ByteString where instance PersistDefault ByteString where
@ -3224,6 +3230,23 @@ changes hLocal ctx =
, addUnique' "SourceThemDelegateRemote" "" ["grant"] , addUnique' "SourceThemDelegateRemote" "" ["grant"]
-- 583 -- 583
, addEntities model_583_dest_start , addEntities model_583_dest_start
-- 584
, unchecked $ lift $ do
deleteWhere ([] :: [Filter SourceUsGatherFromLocal584])
deleteWhere ([] :: [Filter SourceUsGatherFromRemote584])
deleteWhere ([] :: [Filter SourceUsGatherToLocal584])
deleteWhere ([] :: [Filter SourceUsGatherToRemote584])
deleteWhere ([] :: [Filter SourceUsGather584])
-- 585
, addFieldRefRequiredEmpty "SourceUsGather" "destNew" "DestUsStart"
-- 586
, removeField "SourceUsGather" "dest"
-- 586
, renameField "SourceUsGather" "destNew" "dest"
-- 587
, removeEntity "SourceUsGatherToLocal"
-- 588
, removeEntity "SourceUsGatherToRemote"
] ]
migrateDB migrateDB

View file

@ -1,542 +0,0 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model
{-
( EntityField (..)
, Unique (..)
, Sharer2016
, Project2016
, Workflow2016Generic (..)
, Workflow2016
, VerifKey2019Generic (..)
, VerifKey2019
, VerifKeySharedUsage2019Generic (..)
, VerifKeySharedUsage2019
, Message2019Generic (..)
, Message2019
, LocalMessage2019Generic (..)
, LocalMessage2019
, FollowerSet2019Generic (..)
, Ticket2019
, Sharer201905Generic (..)
, Person201905Generic (..)
, OutboxItem201905Generic (..)
, OutboxItem201905
, LocalMessage201905Generic (..)
, LocalMessage201905
, Message201905Generic (..)
, Project201905Generic (..)
, Ticket201905Generic (..)
, Instance201905Generic (..)
, RemoteDiscussion201905Generic (..)
, RemoteMessage201905Generic (..)
, Message201906Generic (..)
, Message201906
, Ticket201906Generic (..)
, Ticket201906
, Ticket20190606Generic (..)
, Ticket20190606
, TicketAuthorLocal20190606Generic (..)
, Person20190607Generic (..)
, Person20190607
, Inbox20190607Generic (..)
, InboxItemLocal20190607Generic (..)
, InboxItemLocal20190607
, InboxItemRemote20190607Generic (..)
, InboxItemRemote20190607
, Project20190609
, Inbox20190609Generic (..)
, InboxItem2019FillGeneric (..)
, InboxItem2019Fill
, InboxItemLocal2019FillGeneric (..)
, InboxItemRemote2019FillGeneric (..)
, Project2019FillGeneric (..)
, Ticket2019FillGeneric (..)
, Message2019FillGeneric (..)
, LocalMessage2019FillGeneric (..)
, RemoteMessage2019FillGeneric (..)
, FollowerSet20190610Generic (..)
, Project20190610
, Sharer20190612Generic (..)
, Person20190612Generic (..)
, OutboxItem20190612Generic (..)
, Inbox20190612Generic (..)
, InboxItem20190612Generic (..)
, InboxItemLocal20190612Generic (..)
, Project20190612Generic (..)
, Ticket20190612Generic (..)
, Ticket20190612
, TicketAuthorLocal20190612Generic (..)
, Person20190615Generic (..)
, Person20190615
, Outbox20190615Generic (..)
, OutboxItem20190615Generic (..)
, OutboxItem20190615
, Project20190616Generic (..)
, Project20190616
, Outbox20190616Generic (..)
, Sharer20190624Generic (..)
, Person20190624Generic (..)
, Outbox20190624Generic (..)
, OutboxItem20190624Generic (..)
, Inbox20190624Generic (..)
, InboxItem20190624Generic (..)
, InboxItemLocal20190624Generic (..)
, Project20190624Generic (..)
, Ticket20190624Generic (..)
, Ticket20190624
, TicketAuthorLocal20190624Generic (..)
, Sharer127Generic (..)
, Person127Generic (..)
, Outbox127Generic (..)
, Inbox127Generic (..)
, Project127Generic (..)
, Ticket127Generic (..)
, TicketDependency127Generic (..)
, TicketDependency127
, Inbox130Generic (..)
, FollowerSet130Generic (..)
, Repo130
, Person130
, Outbox138Generic (..)
, Repo138
, Instance152Generic (..)
, RemoteObject152Generic (..)
, RemoteActivity152Generic (..)
, RemoteActivity152
, Instance159Generic (..)
, RemoteObject159Generic (..)
, RemoteActor159Generic (..)
, RemoteActor159
, UnfetchedRemoteActor159Generic (..)
, UnfetchedRemoteActor159
, RemoteCollection159Generic (..)
, RemoteCollection159
, Ticket189
, Ticket189Generic (..)
, LocalTicket189Generic (..)
, Sharer194Generic (..)
, Outbox194Generic (..)
, OutboxItem194Generic (..)
, Inbox194Generic (..)
, FollowerSet194Generic (..)
, Project194Generic (..)
, Workflow194Generic (..)
, Ticket194Generic (..)
, LocalTicket194Generic (..)
, TicketAuthorLocal194
, TicketAuthorLocal194Generic (..)
, Discussion194Generic (..)
, Ticket201
, Ticket201Generic (..)
, TicketProjectLocal201Generic (..)
, Sharer205Generic (..)
, Outbox205Generic (..)
, OutboxItem205Generic (..)
, Inbox205Generic (..)
, FollowerSet205Generic (..)
, Project205Generic (..)
, Workflow205Generic (..)
, Ticket205Generic (..)
, TicketProjectLocal205Generic (..)
, TicketAuthorRemote205
, TicketAuthorRemote205Generic (..)
, Instance215Generic (..)
, RemoteObject215Generic (..)
, RemoteDiscussion215
, RemoteDiscussion215Generic (..)
, TicketUnderProject223Generic (..)
, Instance227Generic (..)
, RemoteObject227Generic (..)
, RemoteMessage227
, RemoteMessage227Generic (..)
, RemoteTicket238
, RemoteTicket238Generic (..)
, Instance238Generic (..)
, RemoteObject238Generic (..)
, Discussion238Generic (..)
, RemoteDiscussion238Generic (..)
, Forwarding241
, Forwarding241Generic (..)
, ForwarderProject241Generic (..)
, TicketContextLocal247
, TicketContextLocal247Generic (..)
, TicketProjectLocal247Generic (..)
, OutboxItem255Generic (..)
, Person255Generic (..)
, TicketDependency255
, TicketDependency255Generic (..)
, TicketDependencyAuthorLocal255Generic (..)
, RemoteTicket260Generic (..)
, LocalTicketDependency260
, LocalTicketDependency260Generic (..)
, TicketDependencyChildLocal260Generic (..)
, TicketDependencyChildRemote260Generic (..)
, Discussion263Generic (..)
, FollowerSet263Generic (..)
, Ticket263Generic (..)
, LocalTicket263Generic (..)
, LocalTicketDependency263
, LocalTicketDependency263Generic (..)
, Outbox266Generic (..)
, OutboxItem266Generic (..)
, LocalTicketDependency266
, LocalTicketDependency266Generic (..)
, LocalTicket266Generic (..)
, TicketContextLocal266Generic (..)
, TicketUnderProject266Generic (..)
, TicketProjectLocal266Generic (..)
, Project266Generic (..)
, TicketResolve276Generic (..)
, TicketResolveLocal276Generic (..)
, Ticket276Generic (..)
, LocalTicket276
, LocalTicket276Generic (..)
, Person276Generic (..)
, OutboxItem276Generic (..)
, TicketProjectLocal276Generic (..)
, Project276Generic (..)
, Ticket280Generic (..)
, Bundle280Generic (..)
, Patch280
, Patch280Generic (..)
, Repo282
, Repo282Generic (..)
, Collab285Generic (..)
, CollabRecipLocal285Generic (..)
, CollabRoleLocal285Generic (..)
, CollabSenderLocal285Generic (..)
, CollabTopicLocalProject285Generic (..)
, CollabTopicLocalRepo285Generic (..)
, OutboxItem285Generic (..)
, Project285Generic (..)
, ProjectCollab285
, ProjectCollab285Generic (..)
, Repo285Generic (..)
, RepoCollab285
, RepoCollab285Generic (..)
, Project289
, Inbox289Generic (..)
, Outbox289Generic (..)
, FollowerSet289Generic (..)
, Actor289Generic (..)
, Project289Generic (..)
, Outbox297Generic (..)
, OutboxItem297Generic (..)
, Project297
, Project297Generic (..)
, Person297Generic (..)
, CollabTopicLocalProject300
, CollabTopicLocalProject300Generic (..)
, CollabTopicLocalRepo300
, CollabTopicLocalRepo300Generic (..)
, CollabRecipLocal300Generic (..)
, Person300Generic (..)
, Project300Generic (..)
, Repo300Generic (..)
, CollabFulfillsLocalTopicCreation300Generic (..)
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
type PersistActivity = PersistJSON (Doc Activity URIMode)
makeEntitiesMigration "2016"
$(modelFile "migrations/2016_09_01_just_workflow_prepare.model")
makeEntitiesMigration "2018"
$(modelFile "migrations/2019_01_28_project_collabs.model")
makeEntitiesMigration "2019"
$(modelFile "migrations/2019_02_03_verifkey.model")
makeEntitiesMigration "2019"
$(modelFile "migrations/2019_03_18_message.model")
makeEntitiesMigration "2019"
$(modelFile "migrations/2019_03_30_follower_set.model")
makeEntitiesMigration "201905"
$(modelFile "migrations/2019_05_24.model")
makeEntitiesMigration "201906"
$(modelFile "migrations/2019_06_02.model")
makeEntitiesMigration "201906"
$(modelFile "migrations/2019_06_03.model")
makeEntitiesMigration "20190606"
$(modelFile "migrations/2019_06_06_mig.model")
makeEntitiesMigration "20190607"
$(modelFile "migrations/2019_06_07.model")
makeEntitiesMigration "20190609"
$(modelFile "migrations/2019_06_09.model")
makeEntitiesMigration "2019Fill"
$(modelFile "migrations/2019_06_09_fill.model")
makeEntitiesMigration "20190610"
$(modelFile "migrations/2019_06_10.model")
makeEntitiesMigration "20190612"
$(modelFile "migrations/2019_06_12.model")
makeEntitiesMigration "20190615"
$(modelFile "migrations/2019_06_15.model")
makeEntitiesMigration "20190616"
$(modelFile "migrations/2019_06_16.model")
makeEntitiesMigration "20190624"
$(modelFile "migrations/2019_06_24.model")
makeEntitiesMigration "127"
$(modelFile "migrations/2019_07_11.model")
makeEntitiesMigration "130"
$(modelFile "migrations/2019_09_06.model")
makeEntitiesMigration "138"
$(modelFile "migrations/2019_09_10.model")
makeEntitiesMigration "152"
$(modelFile "migrations/2019_11_04_remote_activity_ident.model")
makeEntitiesMigration "159"
$(modelFile "migrations/2019_11_05_remote_actor_ident.model")
makeEntitiesMigration "189" $(modelFile "migrations/2020_02_05_mig.model")
makeEntitiesMigration "194"
$(modelFile "migrations/2020_02_06_tal_point_to_lt.model")
makeEntitiesMigration "201"
$(modelFile "migrations/2020_02_07_tpl_mig.model")
makeEntitiesMigration "205"
$(modelFile "migrations/2020_02_08_tar_point_to_tpl.model")
makeEntitiesMigration "215"
$(modelFile "migrations/2020_02_09_rd_point_to_ro.model")
makeEntitiesMigration "223"
$(modelFile "migrations/2020_02_09_tup_mig.model")
makeEntitiesMigration "227"
$(modelFile "migrations/2020_02_10_rm_point_to_ro.model")
makeEntitiesMigration "238" $(modelFile "migrations/2020_04_10_rt_rd.model")
makeEntitiesMigration "241"
$(modelFile "migrations/2020_05_12_fwd_sender_mig.model")
makeEntitiesMigration "247"
$(modelFile "migrations/2020_05_16_tcl_mig.model")
makeEntitiesMigration "255" $(modelFile "migrations/2020_05_28_tda_mig.model")
makeEntitiesMigration "260" $(modelFile "migrations/2020_06_01_tdc_mig.model")
makeEntitiesMigration "263" $(modelFile "migrations/2020_06_02_tdp.model")
makeEntitiesMigration "266"
$(modelFile "migrations/2020_06_15_td_accept.model")
makeEntitiesMigration "276"
$(modelFile "migrations/2020_07_27_ticket_resolve_mig.model")
makeEntitiesMigration "280"
$(modelFile "migrations/2020_08_10_bundle_mig.model")
makeEntitiesMigration "282"
$(modelFile "migrations/2020_08_13_vcs.model")
makeEntitiesMigration "285"
$(modelFile "migrations/2022_06_14_collab_mig.model")
makeEntitiesMigration "289"
$(modelFile "migrations/2022_07_17_project_actor.model")
makeEntitiesMigration "297"
$(modelFile "migrations/2022_07_24_project_create.model")
makeEntitiesMigration "300"
$(modelFile "migrations/2022_07_25_collab_fulfills_mig.model")
makeEntitiesMigration "303"
$(modelFile "migrations/303_2022-08-04_username.model")
makeEntitiesMigration "308"
$(modelFile "migrations/308_2022-08-04_remove_tcr.model")
makeEntitiesMigration "310"
$(modelFile "migrations/310_2022-08-04_move_ticket_discuss.model")
makeEntitiesMigration "312"
$(modelFile "migrations/312_2022-08-04_move_ticket_followers.model")
makeEntitiesMigration "316"
$(modelFile "migrations/316_2022-08-04_move_ticket_accept.model")
makeEntitiesMigration "318"
$(modelFile "migrations/318_2022-08-04_tal_ticket.model")
makeEntitiesMigration "323"
$(modelFile "migrations/323_2022-08-04_tar_ticket.model")
makeEntitiesMigration "328"
$(modelFile "migrations/328_2022-08-04_tjl_ticket.model")
makeEntitiesMigration "332"
$(modelFile "migrations/332_2022-08-04_trl_ticket.model")
makeEntitiesMigration "338"
$(modelFile "migrations/338_2022-08-04_rtd_child.model")
makeEntitiesMigration "342"
$(modelFile "migrations/342_2022-08-04_ltd_parent.model")
makeEntitiesMigration "345"
$(modelFile "migrations/345_2022-08-04_tdcl_child.model")
makeEntitiesMigration "348"
$(modelFile "migrations/348_2022-08-04_tr_ticket.model")
makeEntitiesMigration "356"
$(modelFile "migrations/356_2022-08-04_person_actor.model")
makeEntitiesMigration "365"
$(modelFile "migrations/365_2022-08-04_group_actor.model")
makeEntitiesMigration "367"
$(modelFile "migrations/367_2022-08-04_repo_actor.model")
makeEntitiesMigration "388"
$(modelFile "migrations/388_2022-08-04_ticket_loom.model")
makeEntitiesMigration "396"
$(modelFile "migrations/396_2022-08-04_repo_dir.model")
makeEntitiesMigration "409"
$(modelFile "migrations/409_2022-08-05_repo_create.model")
makeEntitiesMigration "414"
$(modelFile "migrations/414_2022-08-05_followremote_actor.model")
makeEntitiesMigration "418"
$(modelFile "migrations/418_2022-08-06_follow_actor.model")
makeEntitiesMigration "426"
$(modelFile "migrations/426_2022-08-21_collab_accept_mig.model")
makeEntitiesMigration "429"
$(modelFile "migrations/429_2022-08-30_collab_repo.model")
makeEntitiesMigration "430"
$(modelFile "migrations/430_2022-08-30_collab_deck.model")
makeEntitiesMigration "431"
$(modelFile "migrations/431_2022-08-30_collab_loom.model")
makeEntitiesMigration "447"
$(modelFile "migrations/447_2022-08-30_collab_accept.model")
makeEntitiesMigration "466"
$(modelFile "migrations/466_2022-09-04_collab_topic_repo.model")
makeEntitiesMigration "467"
$(modelFile "migrations/467_2022-09-04_collab_topic_deck.model")
makeEntitiesMigration "468"
$(modelFile "migrations/468_2022-09-04_collab_topic_loom.model")
makeEntitiesMigration "486"
$(modelFile "migrations/486_2022-09-04_collab_enable.model")
makeEntitiesMigration "495"
$(modelFile "migrations/495_2022-09-21_ticket_title.model")
makeEntitiesMigration "498"
$(modelFile "migrations/498_2022-10-03_forwarder.model")
makeEntitiesMigration "504"
$(modelFile "migrations/504_2022-10-16_message_author.model")
makeEntitiesMigration "507"
$(modelFile "migrations/507_2022-10-16_workflow.model")
makeEntitiesMigration "515"
$(modelFile "migrations/515_2022-10-19_inviter_local.model")
makeEntitiesMigration "520"
$(modelFile "migrations/520_2022-10-19_inviter_remote.model")
makeEntitiesMigration "525"
$(modelFile "migrations/525_2022-10-19_collab_accept_local.model")
makeEntitiesMigration "527"
$(modelFile "migrations/527_2022-10-20_collab_accept_remote.model")
makeEntitiesMigration "547"
$(modelFile "migrations/547_2023-06-28_invite_accept.model")
makeEntitiesMigration "549"
$(modelFile "migrations/549_2023-11-21_group_create.model")
makeEntitiesMigration "553"
$(modelFile "migrations/553_2023-11-21_collab_deleg.model")
makeEntitiesMigration "554"
$(modelFile "migrations/554_2023-11-21_further_local_deleg.model")
makeEntitiesMigration "565"
$(modelFile "migrations/565_2023-12-09_collab_permit.model")

View file

@ -0,0 +1,63 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2016
{-
( EntityField (..)
, Unique (..)
, Sharer2016
, Project2016
, Workflow2016Generic (..)
, Workflow2016
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "2016"
$(modelFile "migrations/2016_09_01_just_workflow_prepare.model")

View file

@ -0,0 +1,59 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2018
{-
( EntityField (..)
, Unique (..)
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "2018"
$(modelFile "migrations/2019_01_28_project_collabs.model")

View file

@ -0,0 +1,220 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2019
{-
( EntityField (..)
, Unique (..)
, VerifKey2019Generic (..)
, VerifKey2019
, VerifKeySharedUsage2019Generic (..)
, VerifKeySharedUsage2019
, Message2019Generic (..)
, Message2019
, LocalMessage2019Generic (..)
, LocalMessage2019
, FollowerSet2019Generic (..)
, Ticket2019
, Sharer201905Generic (..)
, Person201905Generic (..)
, OutboxItem201905Generic (..)
, OutboxItem201905
, LocalMessage201905Generic (..)
, LocalMessage201905
, Message201905Generic (..)
, Project201905Generic (..)
, Ticket201905Generic (..)
, Instance201905Generic (..)
, RemoteDiscussion201905Generic (..)
, RemoteMessage201905Generic (..)
, Message201906Generic (..)
, Message201906
, Ticket201906Generic (..)
, Ticket201906
, Ticket20190606Generic (..)
, Ticket20190606
, TicketAuthorLocal20190606Generic (..)
, Person20190607Generic (..)
, Person20190607
, Inbox20190607Generic (..)
, InboxItemLocal20190607Generic (..)
, InboxItemLocal20190607
, InboxItemRemote20190607Generic (..)
, InboxItemRemote20190607
, Project20190609
, Inbox20190609Generic (..)
, InboxItem2019FillGeneric (..)
, InboxItem2019Fill
, InboxItemLocal2019FillGeneric (..)
, InboxItemRemote2019FillGeneric (..)
, Project2019FillGeneric (..)
, Ticket2019FillGeneric (..)
, Message2019FillGeneric (..)
, LocalMessage2019FillGeneric (..)
, RemoteMessage2019FillGeneric (..)
, FollowerSet20190610Generic (..)
, Project20190610
, Sharer20190612Generic (..)
, Person20190612Generic (..)
, OutboxItem20190612Generic (..)
, Inbox20190612Generic (..)
, InboxItem20190612Generic (..)
, InboxItemLocal20190612Generic (..)
, Project20190612Generic (..)
, Ticket20190612Generic (..)
, Ticket20190612
, TicketAuthorLocal20190612Generic (..)
, Person20190615Generic (..)
, Person20190615
, Outbox20190615Generic (..)
, OutboxItem20190615Generic (..)
, OutboxItem20190615
, Project20190616Generic (..)
, Project20190616
, Outbox20190616Generic (..)
, Sharer20190624Generic (..)
, Person20190624Generic (..)
, Outbox20190624Generic (..)
, OutboxItem20190624Generic (..)
, Inbox20190624Generic (..)
, InboxItem20190624Generic (..)
, InboxItemLocal20190624Generic (..)
, Project20190624Generic (..)
, Ticket20190624Generic (..)
, Ticket20190624
, TicketAuthorLocal20190624Generic (..)
, Sharer127Generic (..)
, Person127Generic (..)
, Outbox127Generic (..)
, Inbox127Generic (..)
, Project127Generic (..)
, Ticket127Generic (..)
, TicketDependency127Generic (..)
, TicketDependency127
, Inbox130Generic (..)
, FollowerSet130Generic (..)
, Repo130
, Person130
, Outbox138Generic (..)
, Repo138
, Instance152Generic (..)
, RemoteObject152Generic (..)
, RemoteActivity152Generic (..)
, RemoteActivity152
, Instance159Generic (..)
, RemoteObject159Generic (..)
, RemoteActor159Generic (..)
, RemoteActor159
, UnfetchedRemoteActor159Generic (..)
, UnfetchedRemoteActor159
, RemoteCollection159Generic (..)
, RemoteCollection159
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "2019"
$(modelFile "migrations/2019_02_03_verifkey.model")
makeEntitiesMigration "2019"
$(modelFile "migrations/2019_03_18_message.model")
makeEntitiesMigration "2019"
$(modelFile "migrations/2019_03_30_follower_set.model")
makeEntitiesMigration "201905"
$(modelFile "migrations/2019_05_24.model")
makeEntitiesMigration "201906"
$(modelFile "migrations/2019_06_02.model")
makeEntitiesMigration "201906"
$(modelFile "migrations/2019_06_03.model")
makeEntitiesMigration "20190606"
$(modelFile "migrations/2019_06_06_mig.model")
makeEntitiesMigration "20190607"
$(modelFile "migrations/2019_06_07.model")
makeEntitiesMigration "20190609"
$(modelFile "migrations/2019_06_09.model")
makeEntitiesMigration "2019Fill"
$(modelFile "migrations/2019_06_09_fill.model")
makeEntitiesMigration "20190610"
$(modelFile "migrations/2019_06_10.model")
makeEntitiesMigration "20190612"
$(modelFile "migrations/2019_06_12.model")
makeEntitiesMigration "20190615"
$(modelFile "migrations/2019_06_15.model")
makeEntitiesMigration "20190616"
$(modelFile "migrations/2019_06_16.model")
makeEntitiesMigration "20190624"
$(modelFile "migrations/2019_06_24.model")
makeEntitiesMigration "127"
$(modelFile "migrations/2019_07_11.model")
makeEntitiesMigration "130"
$(modelFile "migrations/2019_09_06.model")
makeEntitiesMigration "138"
$(modelFile "migrations/2019_09_10.model")
makeEntitiesMigration "152"
$(modelFile "migrations/2019_11_04_remote_activity_ident.model")
makeEntitiesMigration "159"
$(modelFile "migrations/2019_11_05_remote_actor_ident.model")

View file

@ -0,0 +1,192 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2020
{-
( EntityField (..)
, Unique (..)
, Ticket189
, Ticket189Generic (..)
, LocalTicket189Generic (..)
, Sharer194Generic (..)
, Outbox194Generic (..)
, OutboxItem194Generic (..)
, Inbox194Generic (..)
, FollowerSet194Generic (..)
, Project194Generic (..)
, Workflow194Generic (..)
, Ticket194Generic (..)
, LocalTicket194Generic (..)
, TicketAuthorLocal194
, TicketAuthorLocal194Generic (..)
, Discussion194Generic (..)
, Ticket201
, Ticket201Generic (..)
, TicketProjectLocal201Generic (..)
, Sharer205Generic (..)
, Outbox205Generic (..)
, OutboxItem205Generic (..)
, Inbox205Generic (..)
, FollowerSet205Generic (..)
, Project205Generic (..)
, Workflow205Generic (..)
, Ticket205Generic (..)
, TicketProjectLocal205Generic (..)
, TicketAuthorRemote205
, TicketAuthorRemote205Generic (..)
, Instance215Generic (..)
, RemoteObject215Generic (..)
, RemoteDiscussion215
, RemoteDiscussion215Generic (..)
, TicketUnderProject223Generic (..)
, Instance227Generic (..)
, RemoteObject227Generic (..)
, RemoteMessage227
, RemoteMessage227Generic (..)
, RemoteTicket238
, RemoteTicket238Generic (..)
, Instance238Generic (..)
, RemoteObject238Generic (..)
, Discussion238Generic (..)
, RemoteDiscussion238Generic (..)
, Forwarding241
, Forwarding241Generic (..)
, ForwarderProject241Generic (..)
, TicketContextLocal247
, TicketContextLocal247Generic (..)
, TicketProjectLocal247Generic (..)
, OutboxItem255Generic (..)
, Person255Generic (..)
, TicketDependency255
, TicketDependency255Generic (..)
, TicketDependencyAuthorLocal255Generic (..)
, RemoteTicket260Generic (..)
, LocalTicketDependency260
, LocalTicketDependency260Generic (..)
, TicketDependencyChildLocal260Generic (..)
, TicketDependencyChildRemote260Generic (..)
, Discussion263Generic (..)
, FollowerSet263Generic (..)
, Ticket263Generic (..)
, LocalTicket263Generic (..)
, LocalTicketDependency263
, LocalTicketDependency263Generic (..)
, Outbox266Generic (..)
, OutboxItem266Generic (..)
, LocalTicketDependency266
, LocalTicketDependency266Generic (..)
, LocalTicket266Generic (..)
, TicketContextLocal266Generic (..)
, TicketUnderProject266Generic (..)
, TicketProjectLocal266Generic (..)
, Project266Generic (..)
, TicketResolve276Generic (..)
, TicketResolveLocal276Generic (..)
, Ticket276Generic (..)
, LocalTicket276
, LocalTicket276Generic (..)
, Person276Generic (..)
, OutboxItem276Generic (..)
, TicketProjectLocal276Generic (..)
, Project276Generic (..)
, Ticket280Generic (..)
, Bundle280Generic (..)
, Patch280
, Patch280Generic (..)
, Repo282
, Repo282Generic (..)
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "189" $(modelFile "migrations/2020_02_05_mig.model")
makeEntitiesMigration "194"
$(modelFile "migrations/2020_02_06_tal_point_to_lt.model")
makeEntitiesMigration "201"
$(modelFile "migrations/2020_02_07_tpl_mig.model")
makeEntitiesMigration "205"
$(modelFile "migrations/2020_02_08_tar_point_to_tpl.model")
makeEntitiesMigration "215"
$(modelFile "migrations/2020_02_09_rd_point_to_ro.model")
makeEntitiesMigration "223"
$(modelFile "migrations/2020_02_09_tup_mig.model")
makeEntitiesMigration "227"
$(modelFile "migrations/2020_02_10_rm_point_to_ro.model")
makeEntitiesMigration "238" $(modelFile "migrations/2020_04_10_rt_rd.model")
makeEntitiesMigration "241"
$(modelFile "migrations/2020_05_12_fwd_sender_mig.model")
makeEntitiesMigration "247"
$(modelFile "migrations/2020_05_16_tcl_mig.model")
makeEntitiesMigration "255" $(modelFile "migrations/2020_05_28_tda_mig.model")
makeEntitiesMigration "260" $(modelFile "migrations/2020_06_01_tdc_mig.model")
makeEntitiesMigration "263" $(modelFile "migrations/2020_06_02_tdp.model")
makeEntitiesMigration "266"
$(modelFile "migrations/2020_06_15_td_accept.model")
makeEntitiesMigration "276"
$(modelFile "migrations/2020_07_27_ticket_resolve_mig.model")
makeEntitiesMigration "280"
$(modelFile "migrations/2020_08_10_bundle_mig.model")
makeEntitiesMigration "282"
$(modelFile "migrations/2020_08_13_vcs.model")

View file

@ -0,0 +1,215 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2022
{-
( EntityField (..)
, Unique (..)
, Collab285Generic (..)
, CollabRecipLocal285Generic (..)
, CollabRoleLocal285Generic (..)
, CollabSenderLocal285Generic (..)
, CollabTopicLocalProject285Generic (..)
, CollabTopicLocalRepo285Generic (..)
, OutboxItem285Generic (..)
, Project285Generic (..)
, ProjectCollab285
, ProjectCollab285Generic (..)
, Repo285Generic (..)
, RepoCollab285
, RepoCollab285Generic (..)
, Project289
, Inbox289Generic (..)
, Outbox289Generic (..)
, FollowerSet289Generic (..)
, Actor289Generic (..)
, Project289Generic (..)
, Outbox297Generic (..)
, OutboxItem297Generic (..)
, Project297
, Project297Generic (..)
, Person297Generic (..)
, CollabTopicLocalProject300
, CollabTopicLocalProject300Generic (..)
, CollabTopicLocalRepo300
, CollabTopicLocalRepo300Generic (..)
, CollabRecipLocal300Generic (..)
, Person300Generic (..)
, Project300Generic (..)
, Repo300Generic (..)
, CollabFulfillsLocalTopicCreation300Generic (..)
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "285"
$(modelFile "migrations/2022_06_14_collab_mig.model")
makeEntitiesMigration "289"
$(modelFile "migrations/2022_07_17_project_actor.model")
makeEntitiesMigration "297"
$(modelFile "migrations/2022_07_24_project_create.model")
makeEntitiesMigration "300"
$(modelFile "migrations/2022_07_25_collab_fulfills_mig.model")
makeEntitiesMigration "303"
$(modelFile "migrations/303_2022-08-04_username.model")
makeEntitiesMigration "308"
$(modelFile "migrations/308_2022-08-04_remove_tcr.model")
makeEntitiesMigration "310"
$(modelFile "migrations/310_2022-08-04_move_ticket_discuss.model")
makeEntitiesMigration "312"
$(modelFile "migrations/312_2022-08-04_move_ticket_followers.model")
makeEntitiesMigration "316"
$(modelFile "migrations/316_2022-08-04_move_ticket_accept.model")
makeEntitiesMigration "318"
$(modelFile "migrations/318_2022-08-04_tal_ticket.model")
makeEntitiesMigration "323"
$(modelFile "migrations/323_2022-08-04_tar_ticket.model")
makeEntitiesMigration "328"
$(modelFile "migrations/328_2022-08-04_tjl_ticket.model")
makeEntitiesMigration "332"
$(modelFile "migrations/332_2022-08-04_trl_ticket.model")
makeEntitiesMigration "338"
$(modelFile "migrations/338_2022-08-04_rtd_child.model")
makeEntitiesMigration "342"
$(modelFile "migrations/342_2022-08-04_ltd_parent.model")
makeEntitiesMigration "345"
$(modelFile "migrations/345_2022-08-04_tdcl_child.model")
makeEntitiesMigration "348"
$(modelFile "migrations/348_2022-08-04_tr_ticket.model")
makeEntitiesMigration "356"
$(modelFile "migrations/356_2022-08-04_person_actor.model")
makeEntitiesMigration "365"
$(modelFile "migrations/365_2022-08-04_group_actor.model")
makeEntitiesMigration "367"
$(modelFile "migrations/367_2022-08-04_repo_actor.model")
makeEntitiesMigration "388"
$(modelFile "migrations/388_2022-08-04_ticket_loom.model")
makeEntitiesMigration "396"
$(modelFile "migrations/396_2022-08-04_repo_dir.model")
makeEntitiesMigration "409"
$(modelFile "migrations/409_2022-08-05_repo_create.model")
makeEntitiesMigration "414"
$(modelFile "migrations/414_2022-08-05_followremote_actor.model")
makeEntitiesMigration "418"
$(modelFile "migrations/418_2022-08-06_follow_actor.model")
makeEntitiesMigration "426"
$(modelFile "migrations/426_2022-08-21_collab_accept_mig.model")
makeEntitiesMigration "429"
$(modelFile "migrations/429_2022-08-30_collab_repo.model")
makeEntitiesMigration "430"
$(modelFile "migrations/430_2022-08-30_collab_deck.model")
makeEntitiesMigration "431"
$(modelFile "migrations/431_2022-08-30_collab_loom.model")
makeEntitiesMigration "447"
$(modelFile "migrations/447_2022-08-30_collab_accept.model")
makeEntitiesMigration "466"
$(modelFile "migrations/466_2022-09-04_collab_topic_repo.model")
makeEntitiesMigration "467"
$(modelFile "migrations/467_2022-09-04_collab_topic_deck.model")
makeEntitiesMigration "468"
$(modelFile "migrations/468_2022-09-04_collab_topic_loom.model")
makeEntitiesMigration "486"
$(modelFile "migrations/486_2022-09-04_collab_enable.model")
makeEntitiesMigration "495"
$(modelFile "migrations/495_2022-09-21_ticket_title.model")
makeEntitiesMigration "498"
$(modelFile "migrations/498_2022-10-03_forwarder.model")
makeEntitiesMigration "504"
$(modelFile "migrations/504_2022-10-16_message_author.model")
makeEntitiesMigration "507"
$(modelFile "migrations/507_2022-10-16_workflow.model")
makeEntitiesMigration "515"
$(modelFile "migrations/515_2022-10-19_inviter_local.model")
makeEntitiesMigration "520"
$(modelFile "migrations/520_2022-10-19_inviter_remote.model")
makeEntitiesMigration "525"
$(modelFile "migrations/525_2022-10-19_collab_accept_local.model")
makeEntitiesMigration "527"
$(modelFile "migrations/527_2022-10-20_collab_accept_remote.model")

View file

@ -0,0 +1,71 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2023
{-
( EntityField (..)
, Unique (..)
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "547"
$(modelFile "migrations/547_2023-06-28_invite_accept.model")
makeEntitiesMigration "549"
$(modelFile "migrations/549_2023-11-21_group_create.model")
makeEntitiesMigration "553"
$(modelFile "migrations/553_2023-11-21_collab_deleg.model")
makeEntitiesMigration "554"
$(modelFile "migrations/554_2023-11-21_further_local_deleg.model")
makeEntitiesMigration "565"
$(modelFile "migrations/565_2023-12-09_collab_permit.model")

View file

@ -0,0 +1,59 @@
{- This file is part of Vervis.
-
- Written in 2018, 2019, 2020, 2022, 2023, 2024
- by fr33domlover <fr33domlover@riseup.net>.
-
- Copying is an act of love. Please copy, reuse and share.
-
- The author(s) have dedicated all copyright and related and neighboring
- rights to this software to the public domain worldwide. This software is
- distributed without any warranty.
-
- You should have received a copy of the CC0 Public Domain Dedication along
- with this software. If not, see
- <http://creativecommons.org/publicdomain/zero/1.0/>.
-}
module Vervis.Migration.Model2024
{-
( EntityField (..)
, Unique (..)
)
-}
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Time (UTCTime)
import Database.Persist.Class (EntityField, Unique)
import Database.Persist.EmailAddress ()
import Database.Persist.Schema.Types (Entity)
import Database.Persist.Schema.SQL ()
import Database.Persist.Schema.TH (makeEntitiesMigration)
import Database.Persist.Sql (SqlBackend)
import Text.Email.Validate (EmailAddress)
import Web.Text (HTML, PandocMarkdown)
import Crypto.ActorKey
import Development.PatchMediaType
import Development.PatchMediaType.Persist
import Vervis.FedURI
import Vervis.Migration.TH (schema)
import Vervis.Model.Group
import Vervis.Model.Ident
import Vervis.Model.Role
import Vervis.Model.TH
import Vervis.Model.Ticket
import Vervis.Model.Workflow
-- For migrations 77, 114
import Data.Int
import Database.Persist.JSON
import Network.FedURI
import Web.ActivityPub
makeEntitiesMigration "584"
$(modelFile "migrations/584_2024-04-14_delete_gather.model")

View file

@ -1451,7 +1451,7 @@ SourceThemDelegateRemote
SourceUsGather SourceUsGather
source SourceUsSendDelegatorId source SourceUsSendDelegatorId
dest DestUsAcceptId dest DestUsStartId
grant OutboxItemId grant OutboxItemId
SourceUsGatherFromLocal SourceUsGatherFromLocal
@ -1466,18 +1466,6 @@ SourceUsGatherFromRemote
UniqueSourceUsGatherFromRemote gather UniqueSourceUsGatherFromRemote gather
SourceUsGatherToLocal
gather SourceUsGatherId
to DestThemSendDelegatorLocalId
UniqueSourceUsGatherToLocal gather
SourceUsGatherToRemote
gather SourceUsGatherId
to DestThemSendDelegatorRemoteId
UniqueSourceUsGatherToRemote gather
-- Witnesses that, seeing the delegation from them, I've sent a leaf-Grant to a -- Witnesses that, seeing the delegation from them, I've sent a leaf-Grant to a
-- direct-collaborator of mine -- direct-collaborator of mine

View file

@ -218,7 +218,13 @@ library
Vervis.KeyFile Vervis.KeyFile
Vervis.Migration Vervis.Migration
Vervis.Migration.Entities Vervis.Migration.Entities
Vervis.Migration.Model Vervis.Migration.Model2016
Vervis.Migration.Model2018
Vervis.Migration.Model2019
Vervis.Migration.Model2020
Vervis.Migration.Model2022
Vervis.Migration.Model2023
Vervis.Migration.Model2024
Vervis.Migration.TH Vervis.Migration.TH
Vervis.Model Vervis.Model
Vervis.Model.Entity Vervis.Model.Entity