diff --git a/source/orm/query/basic_schema.cpp b/source/orm/query/basic_schema.cpp index b383672..caac447 100644 --- a/source/orm/query/basic_schema.cpp +++ b/source/orm/query/basic_schema.cpp @@ -289,7 +289,7 @@ utils::result setup_primary_key_generator(const basic_schema const auto exec_result = create() .table("sequence_table") .columns({ - column("name", utils::basic_type::Varchar, 255), + column("name", utils::basic_type::Varchar, 255).not_null().primary_key(), column("next_id", utils::basic_type::Int64) }) .execute(conn); @@ -319,8 +319,14 @@ utils::result cleanup_primary_key_generator(const basic_sche return utils::failure(result.err()); } } else if (node.pk_generator().type() == utils::generator_type::Table) { - const auto result = drop().sequence(node.name() + "_pk_seq").execute(conn); - if (!result) { + if (const auto result = conn.exists(scm.name(), "sequence_table"); result) { + if (*result) { + const auto drop_result = drop().table("sequence_table").execute(conn); + if (!drop_result) { + return utils::failure(result.err()); + } + } + } else { return utils::failure(result.err()); } }