Skip to content

Commit b278e52

Browse files
committed
Fix non-updating metamodel version in metamodel migration
1 parent 446a8f8 commit b278e52

File tree

6 files changed

+52
-0
lines changed

6 files changed

+52
-0
lines changed

wizard-server/src/Wizard/Database/DAO/KnowledgeModel/KnowledgeModelEditorDAO.hs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,15 @@ updateKnowledgeModelEditorByUuid kmEditor = do
147147
let action conn = execute conn sql params
148148
runDB action
149149

150+
updateKnowledgeModelEditorMetamodelVersion :: U.UUID -> Int -> AppContextM Int64
151+
updateKnowledgeModelEditorMetamodelVersion uuid metamodelVersion = do
152+
tenantUuid <- asks currentTenantUuid
153+
let sql = fromString "UPDATE knowledge_model_editor SET metamodel_version = ? WHERE tenant_uuid = ? AND uuid = ?"
154+
let params = [toField metamodelVersion, toField tenantUuid, toField uuid]
155+
logQuery sql params
156+
let action conn = execute conn sql params
157+
runDB action
158+
150159
deleteKnowledgeModelEditors :: AppContextM Int64
151160
deleteKnowledgeModelEditors = createDeleteEntitiesFn entityName
152161

wizard-server/src/Wizard/Database/DAO/KnowledgeModel/KnowledgeModelPackageDAO.hs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,15 @@ countPackageSuggestions mQuery selectCondition excludeCondition mSelectIdsLike m
150150
[count] -> return . fromOnly $ count
151151
_ -> return 0
152152

153+
updatePackageMetamodelVersion :: String -> Int -> AppContextM Int64
154+
updatePackageMetamodelVersion pkgId metamodelVersion = do
155+
tenantUuid <- asks currentTenantUuid
156+
let sql = fromString "UPDATE knowledge_model_package SET metamodel_version = ? WHERE tenant_uuid = ? AND id = ?"
157+
let params = [toField metamodelVersion, toField tenantUuid, toField pkgId]
158+
logQuery sql params
159+
let action conn = execute conn sql params
160+
runDB action
161+
153162
updatePackagePhaseById :: String -> KnowledgeModelPackagePhase -> AppContextM Int64
154163
updatePackagePhaseById pkgId phase = do
155164
tenantUuid <- asks currentTenantUuid

wizard-server/src/Wizard/Database/Migration/Production/Migration.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import qualified Wizard.Database.Migration.Production.Migration_0058_documentTem
6363
import qualified Wizard.Database.Migration.Production.Migration_0059_integrationReplyFix.Migration as M_0059
6464
import qualified Wizard.Database.Migration.Production.Migration_0060_knowledgeModelRefactor.Migration as M_0060
6565
import qualified Wizard.Database.Migration.Production.Migration_0061_news.Migration as M_0061
66+
import qualified Wizard.Database.Migration.Production.Migration_0062_metamodelFix.Migration as M_0062
6667

6768
migrationDefinitions :: [MigrationDefinition]
6869
migrationDefinitions =
@@ -127,4 +128,5 @@ migrationDefinitions =
127128
, M_0059.definition
128129
, M_0060.definition
129130
, M_0061.definition
131+
, M_0062.definition
130132
]
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module Wizard.Database.Migration.Production.Migration_0062_metamodelFix.Migration (
2+
definition,
3+
) where
4+
5+
import Control.Monad.Logger
6+
import Control.Monad.Reader (liftIO)
7+
import Data.Pool (Pool, withResource)
8+
import Database.PostgreSQL.Migration.Entity
9+
import Database.PostgreSQL.Simple
10+
11+
definition = (meta, migrate)
12+
13+
meta = MigrationMeta {mmNumber = 62, mmName = "Fix metamodel version", mmDescription = "Fix metamodel version"}
14+
15+
migrate :: Pool Connection -> LoggingT IO (Maybe Error)
16+
migrate dbPool = do
17+
let sql =
18+
"UPDATE knowledge_model_package \
19+
\SET metamodel_version = 19 \
20+
\WHERE tenant_uuid IN (SELECT uuid FROM tenant WHERE state = 'ReadyForUseTenantState'); \
21+
\ \
22+
\UPDATE knowledge_model_editor \
23+
\SET metamodel_version = 19 \
24+
\WHERE tenant_uuid IN (SELECT uuid FROM tenant WHERE state = 'ReadyForUseTenantState');"
25+
let action conn = execute_ conn sql
26+
liftIO $ withResource dbPool action
27+
return Nothing

wizard-server/src/Wizard/Service/KnowledgeModel/Metamodel/Migrator/KnowledgeModelEditorMigrator.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module Wizard.Service.KnowledgeModel.Metamodel.Migrator.KnowledgeModelEditorMigr
22
migrateAll,
33
) where
44

5+
import Control.Monad (void)
56
import Control.Monad.Reader (asks)
67
import qualified Data.Aeson as A
78
import Data.Foldable (traverse_)
@@ -39,3 +40,4 @@ migrateOneInDB tenantUuid editor = do
3940
deleteKnowledgeModelEventsByEditorUuid editor.uuid
4041
let kmEventsMigrated = fmap (toKnowledgeModelEditorRawEvent editor.uuid tenantUuid) eventsMigrated
4142
traverse_ insertKnowledgeModelRawEvent kmEventsMigrated
43+
void $ updateKnowledgeModelEditorMetamodelVersion editor.uuid knowledgeModelMetamodelVersion

wizard-server/src/Wizard/Service/KnowledgeModel/Metamodel/Migrator/KnowledgeModelPackageMigrator.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module Wizard.Service.KnowledgeModel.Metamodel.Migrator.KnowledgeModelPackageMig
22
migrateAll,
33
) where
44

5+
import Control.Monad (void)
56
import Control.Monad.Reader (asks)
67
import qualified Data.Aeson as A
78
import Data.Foldable (traverse_)
@@ -14,6 +15,7 @@ import Shared.KnowledgeModel.Database.DAO.Package.KnowledgeModelPackageDAO
1415
import Shared.KnowledgeModel.Database.DAO.Package.KnowledgeModelPackageEventDAO
1516
import Shared.KnowledgeModel.Model.KnowledgeModel.Package.KnowledgeModelPackage
1617
import Shared.KnowledgeModel.Service.KnowledgeModel.Package.KnowledgeModelPackageMapper
18+
import Wizard.Database.DAO.KnowledgeModel.KnowledgeModelPackageDAO
1719
import Wizard.Model.Context.AppContext
1820
import Wizard.Service.KnowledgeModel.Metamodel.Migrator.CommonDB
1921

@@ -39,3 +41,4 @@ migrateOneInDB tenantUuid pkg = do
3941
let kmEventsMigrated = fmap (toPackageRawEvent pkg.pId tenantUuid) eventsMigrated
4042
deletePackageEventsById pkg.pId
4143
traverse_ insertPackageRawEvent kmEventsMigrated
44+
void $ updatePackageMetamodelVersion pkg.pId knowledgeModelMetamodelVersion

0 commit comments

Comments
 (0)