2026-04-14 17:41:39 +02:00

47 lines
1.4 KiB
Lua

RegisterCommand("resetmigrations", function(src)
if src > 0 then
print("^1[ERROR]^7 This command can only be run from the server console.")
return
end
for version, _ in pairs(Core.Migrations or {}) do
DeleteResourceKvp(("esx_migration:%s"):format(version))
end
print("^2[SUCCESS]^7 Reset all migrations. This will re-run all migrations on the next server start.")
end)
local migrationsRan = 0
local restartRequired = false
for esxVersion, migrations in pairs(Core.Migrations or {}) do
---@cast esxVersion string
---@cast migrations table<string, function>
if ESX.Table.SizeOf(migrations) > 0 then
print(("^4[INFO]^7 Running migrations for ESX version %s"):format(esxVersion))
for migrationName, migration in pairs(migrations) do
local success, result = pcall(migration)
if not success then
local err = result --[[@as string]]
error(("^1[ERROR]^7 Failed migration ^4['%s.%s']^7: %s"):format(esxVersion, migrationName, err))
end
local migrationRequiresRestart = result --[[@as boolean]]
if not restartRequired and migrationRequiresRestart then
restartRequired = true
end
end
SetResourceKvpInt(("esx_migration:%s"):format(esxVersion), 1)
print(("^2[SUCCESS]^7 Successfully completed migrations for ESX version %s"):format(esxVersion))
migrationsRan += 1
end
end
while restartRequired do
print(("^4[INFO]^7 Ran migrations for %d ESX version(s). ^1Server restart required!^7"):format(migrationsRan))
Wait(500)
end