Skip to content
Permalink
Browse files
Provide exact error message if postgres connection string missing
  • Loading branch information
sfan5 committed May 30, 2021
1 parent d7a4479 commit a12017c564782b2645b3020a6b998b116789c7cc
Showing with 17 additions and 12 deletions.
  1. +16 −11 src/database/database-postgresql.cpp
  2. +1 −1 src/database/database-postgresql.h
@@ -39,20 +39,24 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "remoteplayer.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)
{
if (m_connect_string.empty()) {
throw SettingNotFoundException(
"Set pgsql_connection string in world.mt to "
// Use given type to reference the exact setting in the error message
std::string s = type;
std::string msg =
"Set pgsql" + s + "_connection string in world.mt to "
"use the postgresql backend\n"
"Notes:\n"
"pgsql_connection has the following form: \n"
"\tpgsql_connection = host=127.0.0.1 port=5432 user=mt_user "
"password=mt_password dbname=minetest_world\n"
"pgsql" + s + "_connection has the following form: \n"
"\tpgsql" + s + "_connection = host=127.0.0.1 port=5432 "
"user=mt_user password=mt_password dbname=minetest" + s + "\n"
"mt_user should have CREATE TABLE, INSERT, SELECT, UPDATE and "
"DELETE rights on the database.\n"
"Don't create mt_user as a SUPERUSER!");
"DELETE rights on the database. "
"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):
Database_PostgreSQL(connect_string),
Database_PostgreSQL(connect_string, ""),
MapDatabase()
{
connectToDatabase();
@@ -315,7 +319,7 @@ void MapDatabasePostgreSQL::listAllLoadableBlocks(std::vector<v3s16> &dst)
* Player Database
*/
PlayerDatabasePostgreSQL::PlayerDatabasePostgreSQL(const std::string &connect_string):
Database_PostgreSQL(connect_string),
Database_PostgreSQL(connect_string, "_player"),
PlayerDatabase()
{
connectToDatabase();
@@ -637,7 +641,8 @@ void PlayerDatabasePostgreSQL::listPlayers(std::vector<std::string> &res)
}

AuthDatabasePostgreSQL::AuthDatabasePostgreSQL(const std::string &connect_string) :
Database_PostgreSQL(connect_string), AuthDatabase()
Database_PostgreSQL(connect_string, "_auth"),
AuthDatabase()
{
connectToDatabase();
}
@@ -29,7 +29,7 @@ class Settings;
class Database_PostgreSQL: public Database
{
public:
Database_PostgreSQL(const std::string &connect_string);
Database_PostgreSQL(const std::string &connect_string, const char *type);
~Database_PostgreSQL();

void beginSave();

0 comments on commit a12017c

Please sign in to comment.