Off-By-One Error in Datebank Migration behoben
This commit is contained in:
@@ -262,7 +262,8 @@ public class MonitoringController : Controller
|
||||
server = await _context.Servers.FirstOrDefaultAsync(s => s.IPAddress == dto.IpAddress);
|
||||
}
|
||||
// Falls keine IP-Adresse übergeben wurde oder Server nicht gefunden, versuche es mit der ID
|
||||
else if (dto.Server_id > 0)
|
||||
// WICHTIG: >= 0 da Server-IDs bei 0 starten können
|
||||
else if (dto.Server_id >= 0)
|
||||
{
|
||||
server = await _context.Servers.FirstOrDefaultAsync(s => s.Id == dto.Server_id);
|
||||
}
|
||||
|
||||
@@ -17,10 +17,18 @@ namespace Watcher.Migrations
|
||||
|
||||
// Bestehende Server-IDs um 1 verringern (1 -> 0, 2 -> 1, etc.)
|
||||
migrationBuilder.Sql(@"
|
||||
UPDATE Servers SET Id = Id - 1;
|
||||
-- Bestehende Server-IDs anpassen, falls Server existieren
|
||||
UPDATE Servers SET Id = Id - 1 WHERE EXISTS (SELECT 1 FROM Servers);
|
||||
UPDATE Metrics SET ServerId = ServerId - 1 WHERE ServerId IS NOT NULL;
|
||||
UPDATE Containers SET ServerId = ServerId - 1 WHERE ServerId IS NOT NULL;
|
||||
UPDATE sqlite_sequence SET seq = seq - 1 WHERE name = 'Servers';
|
||||
|
||||
-- sqlite_sequence anpassen oder initialisieren
|
||||
-- Falls Eintrag existiert: seq - 1, ansonsten: INSERT mit seq = -1
|
||||
-- Der nächste AUTOINCREMENT wird dann 0 sein
|
||||
INSERT OR REPLACE INTO sqlite_sequence (name, seq)
|
||||
VALUES ('Servers',
|
||||
COALESCE((SELECT seq - 1 FROM sqlite_sequence WHERE name = 'Servers'), -1)
|
||||
);
|
||||
");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user