diff options
Diffstat (limited to 'lib/output/pq/updateDatabase.cpp')
-rw-r--r-- | lib/output/pq/updateDatabase.cpp | 16 |
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)); + } } |