Korjaa sites→laitetilat migraatio: tyhjennä sites-taulu kopioinnin jälkeen
Ongelma: migraatio ajautui joka API-kutsulla ja kopioi sites-taulun rivit takaisin laitetilat-tauluun, joten poistettua laitetilaa ei voinut oikeasti poistaa — se ilmestyi aina takaisin. Korjaus: DELETE FROM sites migraation jälkeen, ja tarkista ensin onko sites-taulussa rivejä (vältetään turha ajaminen). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
7
db.php
7
db.php
@@ -642,6 +642,8 @@ function initDatabase(): void {
|
||||
|
||||
// Migraatio: yhdistä sites → laitetilat (kopioi vanhat sijainnit laitetiloiksi)
|
||||
try {
|
||||
$sitesExist = $db->query("SELECT COUNT(*) AS cnt FROM sites")->fetch_assoc();
|
||||
if ((int)($sitesExist['cnt'] ?? 0) > 0) {
|
||||
// Kopioi sites-taulun rivit laitetilat-tauluun (ohita duplikaatit)
|
||||
$db->query("
|
||||
INSERT IGNORE INTO laitetilat (id, company_id, nimi, kuvaus, osoite, luotu, muokattu, muokkaaja)
|
||||
@@ -650,8 +652,9 @@ function initDatabase(): void {
|
||||
");
|
||||
// Päivitä laitteiden laitetila_id vanhoista site_id-viittauksista
|
||||
$db->query("UPDATE devices SET laitetila_id = site_id WHERE laitetila_id IS NULL AND site_id IS NOT NULL");
|
||||
// Päivitä IPAM-merkintöjen site_id viittaamaan laitetiloihin (jo sama ID)
|
||||
// (ei tarvitse muuttaa koska ID:t ovat samat)
|
||||
// Tyhjennä sites-taulu ettei migraatio toista itseään
|
||||
$db->query("DELETE FROM sites");
|
||||
}
|
||||
} catch (\Throwable $e) { /* ohitetaan */ }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user