From 600a8e8c600c233df51e81321d510bea7ca05d3c Mon Sep 17 00:00:00 2001 From: woogerboy21 Date: Fri, 15 Jul 2016 21:14:39 -0400 Subject: [PATCH] Update servatrice to respect server id when doing room information lookups --- servatrice/migrations/servatrice_0014_to_0015.sql | 6 ++++++ servatrice/servatrice.sql | 2 +- servatrice/src/servatrice.cpp | 6 ++++-- servatrice/src/servatrice_database_interface.h | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 servatrice/migrations/servatrice_0014_to_0015.sql diff --git a/servatrice/migrations/servatrice_0014_to_0015.sql b/servatrice/migrations/servatrice_0014_to_0015.sql new file mode 100644 index 00000000..bb83d583 --- /dev/null +++ b/servatrice/migrations/servatrice_0014_to_0015.sql @@ -0,0 +1,6 @@ +-- Servatrice db migration from version 14 to version 15 + +alter table cockatrice_rooms add `id_server` tinyint(3) not null default 0; +alter table cockatrice_rooms_gametypes add `id_server` tinyint(3) not null default 0; + +UPDATE cockatrice_schema_version SET version=15 WHERE version=14; diff --git a/servatrice/servatrice.sql b/servatrice/servatrice.sql index 8670d320..45f41b57 100644 --- a/servatrice/servatrice.sql +++ b/servatrice/servatrice.sql @@ -20,7 +20,7 @@ CREATE TABLE IF NOT EXISTS `cockatrice_schema_version` ( PRIMARY KEY (`version`) ) ENGINE=INNODB DEFAULT CHARSET=utf8; -INSERT INTO cockatrice_schema_version VALUES(14); +INSERT INTO cockatrice_schema_version VALUES(15); -- users and user data tables CREATE TABLE IF NOT EXISTS `cockatrice_users` ( diff --git a/servatrice/src/servatrice.cpp b/servatrice/src/servatrice.cpp index 2a5ee3a3..d215e053 100644 --- a/servatrice/src/servatrice.cpp +++ b/servatrice/src/servatrice.cpp @@ -276,10 +276,12 @@ bool Servatrice::initServer() const QString roomMethod = settingsCache->value("rooms/method").toString(); if (roomMethod == "sql") { - QSqlQuery *query = servatriceDatabaseInterface->prepareQuery("select id, name, descr, permissionlevel, auto_join, join_message, chat_history_size from {prefix}_rooms order by id asc"); + QSqlQuery *query = servatriceDatabaseInterface->prepareQuery("select id, name, descr, permissionlevel, auto_join, join_message, chat_history_size from {prefix}_rooms where id_server = :id_server order by id asc"); + query->bindValue(":id_server", serverId); servatriceDatabaseInterface->execSqlQuery(query); while (query->next()) { - QSqlQuery *query2 = servatriceDatabaseInterface->prepareQuery("select name from {prefix}_rooms_gametypes where id_room = :id_room"); + QSqlQuery *query2 = servatriceDatabaseInterface->prepareQuery("select name from {prefix}_rooms_gametypes where id_room = :id_room AND id_server = :id_server"); + query2->bindValue(":id_server", serverId); query2->bindValue(":id_room", query->value(0).toInt()); servatriceDatabaseInterface->execSqlQuery(query2); QStringList gameTypes; diff --git a/servatrice/src/servatrice_database_interface.h b/servatrice/src/servatrice_database_interface.h index ea0ff8d2..086d0ba9 100644 --- a/servatrice/src/servatrice_database_interface.h +++ b/servatrice/src/servatrice_database_interface.h @@ -9,7 +9,7 @@ #include "server.h" #include "server_database_interface.h" -#define DATABASE_SCHEMA_VERSION 14 +#define DATABASE_SCHEMA_VERSION 15 class Servatrice;