Provide exact error message if postgres connection string missing

This commit is contained in:
sfan5
2021-05-25 20:03:05 +02:00
parent d7a4479eb3
commit a12017c564
2 changed files with 17 additions and 12 deletions

View File

@ -39,20 +39,24 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "remoteplayer.h" #include "remoteplayer.h"
#include "server/player_sao.h" #include "server/player_sao.h"
Database_PostgreSQL::Database_PostgreSQL(const std::string &connect_string) : Database_PostgreSQL::Database_PostgreSQL(const std::string &connect_string,
const char *type) :
m_connect_string(connect_string) m_connect_string(connect_string)
{ {
if (m_connect_string.empty()) { if (m_connect_string.empty()) {
throw SettingNotFoundException( // Use given type to reference the exact setting in the error message
"Set pgsql_connection string in world.mt to " std::string s = type;
std::string msg =
"Set pgsql" + s + "_connection string in world.mt to "
"use the postgresql backend\n" "use the postgresql backend\n"
"Notes:\n" "Notes:\n"
"pgsql_connection has the following form: \n" "pgsql" + s + "_connection has the following form: \n"
"\tpgsql_connection = host=127.0.0.1 port=5432 user=mt_user " "\tpgsql" + s + "_connection = host=127.0.0.1 port=5432 "
"password=mt_password dbname=minetest_world\n" "user=mt_user password=mt_password dbname=minetest" + s + "\n"
"mt_user should have CREATE TABLE, INSERT, SELECT, UPDATE and " "mt_user should have CREATE TABLE, INSERT, SELECT, UPDATE and "
"DELETE rights on the database.\n" "DELETE rights on the database. "
"Don't create mt_user as a SUPERUSER!"); "Don't create mt_user as a SUPERUSER!";
throw SettingNotFoundException(msg);
} }
} }
@ -166,7 +170,7 @@ void Database_PostgreSQL::rollback()
} }
MapDatabasePostgreSQL::MapDatabasePostgreSQL(const std::string &connect_string): MapDatabasePostgreSQL::MapDatabasePostgreSQL(const std::string &connect_string):
Database_PostgreSQL(connect_string), Database_PostgreSQL(connect_string, ""),
MapDatabase() MapDatabase()
{ {
connectToDatabase(); connectToDatabase();
@ -315,7 +319,7 @@ void MapDatabasePostgreSQL::listAllLoadableBlocks(std::vector<v3s16> &dst)
* Player Database * Player Database
*/ */
PlayerDatabasePostgreSQL::PlayerDatabasePostgreSQL(const std::string &connect_string): PlayerDatabasePostgreSQL::PlayerDatabasePostgreSQL(const std::string &connect_string):
Database_PostgreSQL(connect_string), Database_PostgreSQL(connect_string, "_player"),
PlayerDatabase() PlayerDatabase()
{ {
connectToDatabase(); connectToDatabase();
@ -637,7 +641,8 @@ void PlayerDatabasePostgreSQL::listPlayers(std::vector<std::string> &res)
} }
AuthDatabasePostgreSQL::AuthDatabasePostgreSQL(const std::string &connect_string) : AuthDatabasePostgreSQL::AuthDatabasePostgreSQL(const std::string &connect_string) :
Database_PostgreSQL(connect_string), AuthDatabase() Database_PostgreSQL(connect_string, "_auth"),
AuthDatabase()
{ {
connectToDatabase(); connectToDatabase();
} }

View File

@ -29,7 +29,7 @@ class Settings;
class Database_PostgreSQL: public Database class Database_PostgreSQL: public Database
{ {
public: public:
Database_PostgreSQL(const std::string &connect_string); Database_PostgreSQL(const std::string &connect_string, const char *type);
~Database_PostgreSQL(); ~Database_PostgreSQL();
void beginSave(); void beginSave();