mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Рефакт Администрирование БД 2
This commit is contained in:
@@ -47,6 +47,7 @@ public:
|
||||
bool checkDataBaseLMSexist();
|
||||
bool createUser();
|
||||
bool createDB();
|
||||
bool prepareRestoreDBscript();
|
||||
|
||||
protected:
|
||||
//Подключение
|
||||
|
||||
@@ -164,25 +164,14 @@ bool DataBaseLMS::createDB()
|
||||
qDebug() << "The database has been created.";
|
||||
|
||||
//Залитие БД
|
||||
if(prepareRestoreDBscript())
|
||||
{
|
||||
QProcess process;
|
||||
QString pgRestorePath = "restoreDBscript.bat";
|
||||
|
||||
QProcess process;
|
||||
//QString pgRestorePath = "C:\\restoreDB.bat";
|
||||
QString pgRestorePath = "restoreDB.bat";
|
||||
|
||||
/*
|
||||
QString dbName = "databaselms2";
|
||||
QString user = "postgres";
|
||||
QString backupFile = "C:\\DBLMS_EMPTY_30_09_2025.backup";
|
||||
|
||||
QStringList arguments;
|
||||
arguments << "-d" << dbName;
|
||||
arguments << "-U" << user;
|
||||
arguments << backupFile;
|
||||
*/
|
||||
|
||||
process.start("cmd /C " + pgRestorePath);
|
||||
process.waitForFinished(-1); // Ждать бесконечно, пока процесс не завершится
|
||||
|
||||
process.start("cmd /C " + pgRestorePath);
|
||||
process.waitForFinished(-1); // Ждать бесконечно, пока процесс не завершится
|
||||
}
|
||||
|
||||
//Назначение владельца
|
||||
QString queryStr = QString("ALTER DATABASE %1 OWNER TO %2").arg(settings.dbName, settings.dbUserName);
|
||||
@@ -210,8 +199,8 @@ bool DataBaseLMS::createDB()
|
||||
|
||||
QSqlDatabase dbCheck2 = QSqlDatabase::addDatabase("QPSQL");
|
||||
|
||||
dbCheck.setUserName(UserNamePostgres);
|
||||
dbCheck.setPassword(PasswordPostgres);
|
||||
dbCheck2.setUserName(UserNamePostgres);
|
||||
dbCheck2.setPassword(PasswordPostgres);
|
||||
dbCheck2.setHostName(settings.dbHostName);
|
||||
dbCheck2.setPort(settings.dbPort);
|
||||
dbCheck2.setDatabaseName(settings.dbName);
|
||||
@@ -242,3 +231,25 @@ bool DataBaseLMS::createDB()
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DataBaseLMS::prepareRestoreDBscript()
|
||||
{
|
||||
DataBaseSettings settings = getDataBaseSettings();
|
||||
|
||||
QFile file("restoreDBscript.bat");
|
||||
if (file.open(QIODevice::WriteOnly | QIODevice::Text))
|
||||
{
|
||||
QTextStream out(&file);
|
||||
out << "set CURRENT_DIR=%~dp0\n";
|
||||
out << "cd %CURRENT_DIR%\n";
|
||||
out << QString("set \"PGPASSWORD=%1\"\n").arg(PasswordPostgres);
|
||||
out << QString("pg_restore -U %1 -h %2 -p %3 -d %4 DBLMS_EMPTY.backup\n").arg(UserNamePostgres,
|
||||
settings.dbHostName,
|
||||
QString::number(settings.dbPort),
|
||||
settings.dbName);
|
||||
file.close();
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user