mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 01:08:54 +00:00
fix(es_extended): widen rented_vehicles.owner to hold an identifier
The column is varchar(22), which is a leftover from Steam identifiers. esx_vehicleshop writes a player identifier into it, and on a multicharacter server those are 46 characters long, so renting a vehicle out fails. The stock vehicle is deleted from cardealer_vehicles before the insert runs, so the dealer loses the car and the customer never gets a rental contract. Neither side is told anything, because the handler dies on the insert. esx_vehicleshop's own esx_vehicleshop.sql already declares varchar(60).
This commit is contained in:
+1
-1
@@ -364,7 +364,7 @@ CREATE TABLE `rented_vehicles` (
|
||||
`player_name` varchar(255) NOT NULL,
|
||||
`base_price` int(11) NOT NULL,
|
||||
`rent_price` int(11) NOT NULL,
|
||||
`owner` varchar(22) NOT NULL
|
||||
`owner` varchar(60) 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].rentedVehiclesOwnerLength = function()
|
||||
print("^4[esx_migration:v1.14.2:rentedVehiclesOwnerLength]^7 Checking the length of rented_vehicles.owner.")
|
||||
|
||||
local length = MySQL.scalar.await([[
|
||||
SELECT CHARACTER_MAXIMUM_LENGTH
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'rented_vehicles'
|
||||
AND COLUMN_NAME = 'owner'
|
||||
]])
|
||||
|
||||
if not length then
|
||||
print("^4[esx_migration:v1.14.2:rentedVehiclesOwnerLength]^7 Column not found, migration not needed.")
|
||||
return false
|
||||
end
|
||||
|
||||
if length >= 60 then
|
||||
print(("^4[esx_migration:v1.14.2:rentedVehiclesOwnerLength]^7 Column is already varchar(%s), migration not needed."):format(length))
|
||||
return false
|
||||
end
|
||||
|
||||
print(("^4[esx_migration:v1.14.2:rentedVehiclesOwnerLength]^7 Column is varchar(%s), widening it to 60."):format(length))
|
||||
|
||||
MySQL.update.await([[
|
||||
ALTER TABLE `rented_vehicles`
|
||||
MODIFY `owner` VARCHAR(60) NOT NULL
|
||||
]])
|
||||
|
||||
print("^4[esx_migration:v1.14.2:rentedVehiclesOwnerLength]^7 Migration complete.")
|
||||
return true
|
||||
end
|
||||
Reference in New Issue
Block a user