From e182c0a21bbed54fbf1e648215c2259ce5b5e87f Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Mon, 11 Apr 2022 23:11:00 +0200 Subject: [PATCH] fix: create core schema before making a first select request Migration uses Finder to get the current table version. --- winixd/core/app.cpp | 2 ++ winixd/models/migration.cpp | 14 +++++--------- winixd/models/migration.h | 3 +-- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/winixd/core/app.cpp b/winixd/core/app.cpp index 1804a2b..c85a6f3 100644 --- a/winixd/core/app.cpp +++ b/winixd/core/app.cpp @@ -287,6 +287,8 @@ bool App::DoDatabaseMigration() Item item; Group group; + migration.set_connector(model_connector); + migration.create_winix_schema(); ok = ok && Migration::do_migration(&model_connector, migration); ok = ok && Migration::do_migration(&model_connector, user); diff --git a/winixd/models/migration.cpp b/winixd/models/migration.cpp index 0c8992b..dbd5e6e 100644 --- a/winixd/models/migration.cpp +++ b/winixd/models/migration.cpp @@ -103,29 +103,25 @@ bool Migration::do_migration(int & current_table_version) bool ok = true; ok = ok && morm::Model::do_migration(current_table_version, 1, this, &Migration::do_migration_to_1); - ok = ok && morm::Model::do_migration(current_table_version, 2, this, &Migration::do_migration_to_2); return ok; } -bool Migration::do_migration_to_1() +bool Migration::create_winix_schema() { + // may the name of a schema (core) should be a parameter in the config? + const char * str = R"sql( - create schema core - ); + create schema if not exists core )sql"; return db_query(str); } -bool Migration::do_migration_to_2() +bool Migration::do_migration_to_1() { - // IMPROVEME - // what about 'create schema core'? - // may the name of a schema (core) should be a parameter in the config? - const char * str = R"sql( create table core.migration ( id serial, diff --git a/winixd/models/migration.h b/winixd/models/migration.h index 066a900..d45cc70 100644 --- a/winixd/models/migration.h +++ b/winixd/models/migration.h @@ -78,13 +78,12 @@ public: static bool do_migration(morm::ModelConnector * model_connector, morm::Model & model); + bool create_winix_schema(); bool do_migration(int & current_table_version); private: - bool do_migration_to_1(); - bool do_migration_to_2(); };