attaching schema nodes progress

This commit is contained in:
Sascha Kühl
2025-07-10 16:02:25 +02:00
parent 7fd11ad174
commit 6982eebfd6
7 changed files with 61 additions and 36 deletions
+22 -22
View File
@@ -70,35 +70,35 @@ using namespace work::models;
// payload.is_polymorphic_type<jobs::IdPayload>();
int main() {
object::schema schema("Administration");
const object::schema schema("Administration");
auto result = schema.attach<admin::CollectionCenter>("collection_centers")
.and_then([&schema] { return schema.attach<admin::UserDirectory>("user_directories"); })
.and_then([&schema] { return schema.attach<admin::LdapGroupSchemaSettings>("ldap_group_schema_settings"); })
.and_then([&schema] { return schema.attach<admin::LdapImportSettings>("ldap_import_settings"); })
.and_then([&schema] { return schema.attach<admin::LdapUserSchemaSettings>("ldap_user_schema_settings"); })
.and_then([&schema] { return schema.attach<admin::InternalUserDirectory, admin::UserDirectory>("internal_user_directories"); })
.and_then([&schema] { return schema.attach<admin::LdapUserDirectory, admin::UserDirectory>("ldap_user_directories"); } )
.and_then([&schema] { return schema.attach<admin::LoginHistory>("login_histories"); })
.and_then([&schema] { return schema.attach<admin::Scenario>("scenarios"); })
.and_then([&schema] { return schema.attach<admin::User>("users"); })
.and_then([&schema] { return schema.attach<admin::UserSession>("user_sessions"); })
.and_then([&schema] { return schema.attach<jobs::Job>("jobs"); })
.and_then([&schema] { return schema.attach<jobs::Payload>("payloads"); })
.and_then([&schema] { return schema.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
.and_then([&schema] { return schema.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
.and_then([&schema] { return schema.attach<jobs::Task>("tasks"); });
sql::connection_pool<sql::connection> pool("postgres://news:news@127.0.0.1:15432/matador", 4);
orm::session ses(pool);
auto result = ses.attach<admin::CollectionCenter>("collection_centers");
// .and_then([&ses] { return ses.attach<admin::UserDirectory>("user_directories"); })
// .and_then([&ses] { return ses.attach<admin::LdapGroupSchemaSettings>("ldap_group_schema_settings"); })
// .and_then([&ses] { return ses.attach<admin::LdapImportSettings>("ldap_import_settings"); })
// .and_then([&ses] { return ses.attach<admin::LdapUserSchemaSettings>("ldap_user_schema_settings"); })
// .and_then([&ses] { return ses.attach<admin::InternalUserDirectory, admin::UserDirectory>("internal_user_directories"); })
// .and_then([&ses] { return ses.attach<admin::LdapUserDirectory, admin::UserDirectory>("ldap_user_directories"); } )
// .and_then([&ses] { return ses.attach<admin::LoginHistory>("login_histories"); })
// .and_then([&ses] { return ses.attach<admin::Scenario>("scenarios"); })
// .and_then([&ses] { return ses.attach<admin::User>("users"); })
// .and_then([&ses] { return ses.attach<admin::UserSession>("user_sessions"); })
// .and_then([&ses] { return ses.attach<jobs::Job>("jobs"); })
// .and_then([&ses] { return ses.attach<jobs::Payload>("payloads"); })
// .and_then([&ses] { return ses.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
// .and_then([&ses] { return ses.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
// .and_then([&ses] { return ses.attach<jobs::Task>("tasks"); })
// .and_then([&ses] { return ses.create_schema(); });
if (!result) {
std::cout << "error: " << result.err().message() << std::endl;
return 0;
}
sql::connection_pool<sql::connection> pool("postgres://test:test123!@127.0.0.1:15432/postgres", 4);
orm::session ses(pool);
result = ses.create_schema();
schema.dump(std::cout);
// const std::string dns{"sqlite://demo.db"};
// sql::connection c(dns);