Commit d57cfce1 authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[nodeStory] fixNodeStoryVersions command

parent d18e6db2
Pipeline #3485 passed with stage
in 92 minutes and 41 seconds
......@@ -78,7 +78,7 @@ main = do
_ <- if fun == "corpusCsvHal"
then runCmdDev env corpusCsvHal
else pure 0 --(cs "false")
_ <- if fun == "annuaire"
then runCmdDev env annuaire
else pure 0
......
......@@ -88,7 +88,8 @@ module Gargantext.Core.NodeStory
, nodeStoriesQuery
, currentVersion
, archiveStateFromList
, archiveStateToList )
, archiveStateToList
, fixNodeStoryVersions )
where
-- import Debug.Trace (traceShow)
......@@ -719,3 +720,45 @@ currentVersion listId = do
-----------------------------------------
fixNodeStoryVersions :: (HasNodeStory env err m) => m ()
fixNodeStoryVersions = do
pool <- view connPool
_ <- withResource pool $ \c -> liftBase $ PGS.withTransaction c $ do
nIds <- runPGSQuery c [sql| SELECT id FROM nodes WHERE ? |] (PGS.Only True) :: IO [PGS.Only Int64]
printDebug "[fixNodeStoryVersions] nIds" nIds
_ <- mapM_ (\(PGS.Only nId) -> do
printDebug "[fixNodeStoryVersions] nId" nId
updateVer c TableNgrams.Authors nId
updateVer c TableNgrams.Institutes nId
updateVer c TableNgrams.Sources nId
updateVer c TableNgrams.NgramsTerms nId
pure ()
) nIds
pure ()
pure ()
where
maxVerQuery :: PGS.Query
maxVerQuery = [sql| SELECT max(version)
FROM node_stories
WHERE node_id = ?
AND ngrams_type_id = ? |]
updateVerQuery :: PGS.Query
updateVerQuery = [sql| UPDATE node_stories
SET version = ?
WHERE node_id = ?
AND ngrams_type_id = ? |]
updateVer :: PGS.Connection -> TableNgrams.NgramsType -> Int64 -> IO ()
updateVer c ngramsType nId = do
maxVer <- runPGSQuery c maxVerQuery (nId, ngramsType) :: IO [PGS.Only (Maybe Int64)]
case maxVer of
[] -> pure ()
[PGS.Only Nothing] -> pure ()
[PGS.Only (Just maxVersion)] -> do
_ <- runPGSExecute c updateVerQuery (maxVersion, nId, ngramsType)
pure ()
_ -> panic "Should get only 1 result!"
{-|
Module : Gargantext.Database.Prelude
Description :
Description :
Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3
Maintainer : team@gargantext.org
......@@ -49,4 +49,3 @@ import Database.PostgreSQL.Simple.SqlQQ (sql)
import Database.PostgreSQL.Simple.ToField (toField, ToField)
import Database.PostgreSQL.Simple.ToRow (toRow)
import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..))
......@@ -60,5 +60,3 @@ instance DefaultFromField SqlInt4 (Maybe Int) where
instance DefaultFromField (Nullable SqlText) Text where
defaultFromField = fromPGSFromField
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment