Skip to content

Commit

Permalink
Provide exact error message if postgres connection string missing
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed May 30, 2021
1 parent d7a4479 commit a12017c
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
27 changes: 16 additions & 11 deletions src/database/database-postgresql.cpp
Expand Up @@ -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);
}
}

Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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();
}
Expand Down
2 changes: 1 addition & 1 deletion src/database/database-postgresql.h
Expand Up @@ -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();
Expand Down

0 comments on commit a12017c

Please sign in to comment.