From fca8927b384713d0cdd8327a2a60f53ba324bd43 Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Mon, 14 Feb 2022 20:18:59 +1100 Subject: [PATCH] revert(server): foreign keys Can result in some errors. Still keeping the other optimisations from previous commit (namely adjusting all identifier fields to the correct varchar length). --- server/main.lua | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/server/main.lua b/server/main.lua index 5b672bc7..6b3fd4f8 100644 --- a/server/main.lua +++ b/server/main.lua @@ -128,18 +128,11 @@ elseif ESX.GetConfig().Multichar == true then MySQL.ready(function() local length = 42 + #PREFIX - local DB_COLUMNS = MySQL.query.await(('SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = "%s" AND DATA_TYPE = "varchar" AND COLUMN_NAME IN (?)'):format(DATABASE, length), { + local DB_COLUMNS = MySQL.query.await(('SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = "%s" AND DATA_TYPE = "varchar" AND COLUMN_NAME IN (?)'):format(DATABASE, length), { {'identifier', 'owner'} }) if DB_COLUMNS then - local FK = MySQL.query.await(('SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = "FOREIGN KEY" AND TABLE_SCHEMA = "%s"'):format(DATABASE)) - local FOREIGN_KEY = {} - - for i = 1, #FK do - FOREIGN_KEY[FK[i].TABLE_NAME] = true - end - local columns = {} local count = 0 @@ -167,23 +160,6 @@ elseif ESX.GetConfig().Multichar == true then end end - for i = 1, #DB_COLUMNS do - local v = DB_COLUMNS[i] - - if not FOREIGN_KEY[v.TABLE_NAME] then - DB_TABLES[v.TABLE_NAME] = v.COLUMN_NAME - - if v.TABLE_NAME ~= 'users' and v.IS_NULLABLE == 'NO' then - MySQL.update(([[ALTER TABLE `%s` - ADD CONSTRAINT `FK_%s_users` FOREIGN KEY (`%s`) REFERENCES `users` (`identifier`) ON UPDATE CASCADE ON DELETE CASCADE]]):format(v.TABLE_NAME, v.TABLE_NAME, v.COLUMN_NAME), function(result) - if result then - print(('[^2INFO^7] Updated ^5"%s.%s"^7 to use FOREIGN_KEY referencing ^5"users.identifier"^7'):format(v.TABLE_NAME, v.COLUMN_NAME)) - end - end) - end - end - end - ESX.Jobs = {} local function GetJobs()