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 ...@@ -78,7 +78,7 @@ main = do
_ <- if fun == "corpusCsvHal" _ <- if fun == "corpusCsvHal"
then runCmdDev env corpusCsvHal then runCmdDev env corpusCsvHal
else pure 0 --(cs "false") else pure 0 --(cs "false")
_ <- if fun == "annuaire" _ <- if fun == "annuaire"
then runCmdDev env annuaire then runCmdDev env annuaire
else pure 0 else pure 0
......
...@@ -88,7 +88,8 @@ module Gargantext.Core.NodeStory ...@@ -88,7 +88,8 @@ module Gargantext.Core.NodeStory
, nodeStoriesQuery , nodeStoriesQuery
, currentVersion , currentVersion
, archiveStateFromList , archiveStateFromList
, archiveStateToList ) , archiveStateToList
, fixNodeStoryVersions )
where where
-- import Debug.Trace (traceShow) -- import Debug.Trace (traceShow)
...@@ -719,3 +720,45 @@ currentVersion listId = do ...@@ -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 Module : Gargantext.Database.Prelude
Description : Description :
Copyright : (c) CNRS, 2017-Present Copyright : (c) CNRS, 2017-Present
License : AGPL + CECILL v3 License : AGPL + CECILL v3
Maintainer : team@gargantext.org Maintainer : team@gargantext.org
...@@ -49,4 +49,3 @@ import Database.PostgreSQL.Simple.SqlQQ (sql) ...@@ -49,4 +49,3 @@ import Database.PostgreSQL.Simple.SqlQQ (sql)
import Database.PostgreSQL.Simple.ToField (toField, ToField) import Database.PostgreSQL.Simple.ToField (toField, ToField)
import Database.PostgreSQL.Simple.ToRow (toRow) import Database.PostgreSQL.Simple.ToRow (toRow)
import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..)) import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..))
...@@ -60,5 +60,3 @@ instance DefaultFromField SqlInt4 (Maybe Int) where ...@@ -60,5 +60,3 @@ instance DefaultFromField SqlInt4 (Maybe Int) where
instance DefaultFromField (Nullable SqlText) Text where instance DefaultFromField (Nullable SqlText) Text where
defaultFromField = fromPGSFromField 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