Files
backend/main.cc
T
2026-06-02 19:26:27 +02:00

39 lines
1.1 KiB
C++

#include <drogon/drogon.h>
#include "plugins/RequestLogger.h"
#include "repositories/MigrationRunner.h"
#include <cstdio>
int main(int argc, char *argv[])
{
setvbuf(stdout, nullptr, _IONBF, 0);
(void)RequestLogger::classTypeName();
const auto configPath = argc > 1 ? argv[1] : "config.json";
Json::Value requestLoggerConfig;
requestLoggerConfig["include_query"] = true;
drogon::app().loadConfigFile(configPath);
drogon::app().addPlugin("RequestLogger", {}, requestLoggerConfig);
const auto migrationsPath = drogon::app()
.getCustomConfig()
.get("migrations_path", "migrations")
.asString();
drogon::app().getLoop()->runAfter(0.0, [migrationsPath]() {
try
{
visione::repositories::MigrationRunner::run(migrationsPath);
}
catch (const std::exception &error)
{
LOG_FATAL << "Migration failed: " << error.what();
drogon::app().quit();
}
});
drogon::app().run();
return 0;
}