fix: create core schema before making a first select request

Migration uses Finder to get the current table version.
This commit is contained in:
Tomasz Sowa 2022-04-11 23:11:00 +02:00
parent c8edd241d5
commit e182c0a21b
3 changed files with 8 additions and 11 deletions

View File

@ -287,6 +287,8 @@ bool App::DoDatabaseMigration()
Item item; Item item;
Group group; 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, migration);
ok = ok && Migration::do_migration(&model_connector, user); ok = ok && Migration::do_migration(&model_connector, user);

View File

@ -103,29 +103,25 @@ bool Migration::do_migration(int & current_table_version)
bool ok = true; 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, 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; 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( const char * str = R"sql(
create schema core create schema if not exists core
);
)sql"; )sql";
return db_query(str); 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( const char * str = R"sql(
create table core.migration ( create table core.migration (
id serial, id serial,

View File

@ -78,13 +78,12 @@ public:
static bool do_migration(morm::ModelConnector * model_connector, morm::Model & model); static bool do_migration(morm::ModelConnector * model_connector, morm::Model & model);
bool create_winix_schema();
bool do_migration(int & current_table_version); bool do_migration(int & current_table_version);
private: private:
bool do_migration_to_1(); bool do_migration_to_1();
bool do_migration_to_2();
}; };