summaryrefslogtreecommitdiff
path: root/lib/output/pq/updateDatabase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output/pq/updateDatabase.cpp')
-rw-r--r--lib/output/pq/updateDatabase.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/output/pq/updateDatabase.cpp b/lib/output/pq/updateDatabase.cpp
index 4d60fee..99d2861 100644
--- a/lib/output/pq/updateDatabase.cpp
+++ b/lib/output/pq/updateDatabase.cpp
@@ -1,11 +1,14 @@
#include "updateDatabase.h"
#include "pqConn.h"
+#include <compileTimeFormatter.h>
#include <cstdint>
#include <dbRecordSet.h>
#include <eventSourceBase.h>
#include <helpers.h>
#include <input/replStream.h>
+#include <input/sql/showMasterStatus.h>
#include <memory>
+#include <output/pq/sql/insertSource.h>
#include <output/pq/sql/selectColumns.h>
#include <output/pq/sql/selectSource.h>
#include <output/pq/sql/selectTables.h>
@@ -37,4 +40,17 @@ namespace MyGrate::Output::Pq {
}
}
}
+
+ UpdateDatabase
+ UpdateDatabase::createNew(PqConn * pq, const char * host, const char * username, const char * password,
+ unsigned short port, const char * db, int sid, const char * schema)
+ {
+ Input::MySQLConn my {host, username, password, port};
+ auto ms = input::sql::showMasterStatus::execute(&my);
+ auto source_id = output::pq::sql::insertSource::execute(
+ pq, host, username, password, port, db, ms->at(0, 0), ms->at(0, 1), sid, schema);
+ pq->query(scprintf<"CREATE SCHEMA IF NOT EXISTS %?">(schema).c_str());
+
+ return UpdateDatabase(pq->connstr.c_str(), source_id->at(0, 0));
+ }
}