From 8e6aa1470490a121ec5d15b3a736dfbeb4d388ec Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 26 Sep 2020 18:09:08 -0400 Subject: [PATCH 1/2] [Database v0007] Add unique key on server_alias.alias - Fix inconsistent behaviors with aliases referring to multiple servers --- src/sql/migrations/down/0006.sql | 0 src/sql/migrations/up/0007.sql | 6 ++++++ 2 files changed, 6 insertions(+) create mode 100644 src/sql/migrations/down/0006.sql create mode 100644 src/sql/migrations/up/0007.sql diff --git a/src/sql/migrations/down/0006.sql b/src/sql/migrations/down/0006.sql new file mode 100644 index 0000000..e69de29 diff --git a/src/sql/migrations/up/0007.sql b/src/sql/migrations/up/0007.sql new file mode 100644 index 0000000..1c85712 --- /dev/null +++ b/src/sql/migrations/up/0007.sql @@ -0,0 +1,6 @@ +BEGIN; +CREATE TABLE temp_server_alias AS SELECT * FROM server_alias GROUP BY alias; +DROP TABLE server_alias; +RENAME TABLE temp_server_alias TO server_alias; +CREATE UNIQUE INDEX server_alias_alias_uindex ON server_alias (alias); +COMMIT; From e873d62e2cf615c6620cca04596decf5026f9bc4 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Sat, 26 Sep 2020 18:09:21 -0400 Subject: [PATCH 2/2] Expand ON DUPLICATE KEY statement to match the new unique key --- src/classes/Models/Server.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/classes/Models/Server.php b/src/classes/Models/Server.php index 72c89e0..9f1ec5c 100644 --- a/src/classes/Models/Server.php +++ b/src/classes/Models/Server.php @@ -33,7 +33,9 @@ class Server extends \Friendica\Directory\Model SET `server_id` = :server_id, `alias` = :alias, `timestamp` = NOW() - ON DUPLICATE KEY UPDATE `timestamp` = NOW()', + ON DUPLICATE KEY UPDATE + `server_id` = :server_id, + `timestamp` = NOW()', [ 'server_id' => $server_id, 'alias' => strtolower($server_alias)