mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-28 23:01:26 +00:00
fix(es_extended): widen billing.target to hold an identifier
The column is varchar(40) but esx_billing writes an identifier into it, and those are 46 characters once multicharacter is on, so the insert fails with 1406 and the handler dies before notifying either player. The other two identifier columns in the same table are already varchar(60).
This commit is contained in:
+1
-1
@@ -89,7 +89,7 @@ CREATE TABLE `billing` (
|
||||
`identifier` varchar(60) NOT NULL,
|
||||
`sender` varchar(60) NOT NULL,
|
||||
`target_type` varchar(50) NOT NULL,
|
||||
`target` varchar(40) NOT NULL,
|
||||
`target` varchar(60) NOT NULL,
|
||||
`label` varchar(255) NOT NULL,
|
||||
`amount` int(11) NOT NULL
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
local esxVersion = "v1.14.2"
|
||||
|
||||
Core.Migrations = Core.Migrations or {}
|
||||
Core.Migrations[esxVersion] = Core.Migrations[esxVersion] or {}
|
||||
|
||||
if GetResourceKvpInt(("esx_migration:%s"):format(esxVersion)) == 1 then
|
||||
return
|
||||
end
|
||||
|
||||
---@return boolean restartRequired
|
||||
Core.Migrations[esxVersion].billingTargetLength = function()
|
||||
print("^4[esx_migration:v1.14.2:billingTargetLength]^7 Checking the length of billing.target.")
|
||||
|
||||
local length = MySQL.scalar.await([[
|
||||
SELECT CHARACTER_MAXIMUM_LENGTH
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'billing'
|
||||
AND COLUMN_NAME = 'target'
|
||||
]])
|
||||
|
||||
if not length then
|
||||
print("^4[esx_migration:v1.14.2:billingTargetLength]^7 Column not found, migration not needed.")
|
||||
return false
|
||||
end
|
||||
|
||||
if length >= 60 then
|
||||
print(("^4[esx_migration:v1.14.2:billingTargetLength]^7 Column is already varchar(%s), migration not needed."):format(length))
|
||||
return false
|
||||
end
|
||||
|
||||
print(("^4[esx_migration:v1.14.2:billingTargetLength]^7 Column is varchar(%s), widening it to 60."):format(length))
|
||||
|
||||
MySQL.update.await([[
|
||||
ALTER TABLE `billing`
|
||||
MODIFY `target` VARCHAR(60) NOT NULL
|
||||
]])
|
||||
|
||||
print("^4[esx_migration:v1.14.2:billingTargetLength]^7 Migration complete.")
|
||||
return true
|
||||
end
|
||||
Reference in New Issue
Block a user