From ccda2bc2fd2d32696fdfbda8c5c24dfee103f434 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Wed, 14 Apr 2021 14:13:47 +0200 Subject: [PATCH] added option do_migration_to_winix_fullmorm do the config (only temporarily) if true then we make Item::do_migration() and exit --- winixd/core/app.cpp | 14 +++++++++----- winixd/models/item.cpp | 24 +++++++++++++----------- winixd/models/item.h | 7 ++++++- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/winixd/core/app.cpp b/winixd/core/app.cpp index 1cb4f17..43fd079 100644 --- a/winixd/core/app.cpp +++ b/winixd/core/app.cpp @@ -286,12 +286,16 @@ bool App::Init() //model_connector.set_doc_connector(doc_html_connector); // temporary - Item item_temp; - item_temp.set_connector(model_connector); - item_temp.do_migration(&model_connector); - //std::exit(0); - // ----------- + if( config.space.to_bool(L"do_migration_to_winix_fullmorm", false) ) + { + Item item_temp; + item_temp.set_connector(model_connector); + item_temp.do_migration(&model_connector, log); + log << log1 << "Migrations complete, now remove do_migration_to_winix_fullmorm from the config" << logend; + std::exit(0); + } + ///////////// db_conn.SetConnParam(config.db_database, config.db_user, config.db_pass); db_conn.WaitForConnection(); diff --git a/winixd/models/item.cpp b/winixd/models/item.cpp index 5c7e9b5..55a8d6c 100644 --- a/winixd/models/item.cpp +++ b/winixd/models/item.cpp @@ -223,21 +223,23 @@ return !is_that_url; } -void Item::do_migration(morm::ModelConnector * model_connector) +void Item::do_migration(morm::ModelConnector * model_connector, Log & log) { - return; - /////// - morm::Finder finder(model_connector); - std::list list = finder.select().where().eq(L"type", static_cast(Item::dir)).eq(L"content_id", -1).get_list(); - -// for(Item & item : list) -// { -// item.item_content.set_save_mode(morm::Model::DO_INSERT_ON_SAVE); -// item.save(); -// } + std::list list = finder. + select(). + where(). + eq(L"type", static_cast(Item::dir)). + eq(L"content_id", -1). + get_list(); + for(Item & item : list) + { + log << "updating item id: " << item.id << ", type: " << (int)item.type << ", url: " << item.url << ", subject: " << item.subject << logend << logsave; + item.item_content.set_save_mode(morm::Model::DO_INSERT_ON_SAVE); + item.save(); + } } void Item::propagate_connector() diff --git a/winixd/models/item.h b/winixd/models/item.h index fd22d4f..d015673 100644 --- a/winixd/models/item.h +++ b/winixd/models/item.h @@ -40,6 +40,11 @@ #include "models/itemcontent.h" +// temporary +#include "core/log.h" + + + namespace Winix { @@ -173,7 +178,7 @@ public: /* * temporary */ - static void do_migration(morm::ModelConnector * model_connector); + void do_migration(morm::ModelConnector * model_connector, Log & log); void propagate_connector();