Datenbank bereinigen

From MapbenderWiki

Jump to: navigation, search

Contents

English

lost wms

When a wms is removed from all GUIs, it has lost all links from table gui_wms. It is invisible in the admin-GUIs for delete (WMS_löschen).

But the wms is still stored in table wms and related tables layer and wms_format.

You can find this cases with SQL-View:

SELECT wms_id, wms_version, wms_title, wms_upload_url
FROM   wms 
WHERE NOT EXISTS 
      (SELECT * FROM gui_wms 
       WHERE gui_wms.fkey_wms_id = wms.wms_id) 
ORDER BY wms.wms_id;

.. and delete them with:

DELETE FROM wms 
WHERE NOT EXISTS 
     (SELECT * FROM gui_wms 
      WHERE gui_wms.fkey_wms_id = wms.wms_id);

multi wms

If a wms (url) is uploaded more than once, it has multible IDs in the table wms. It's better to upload only one time and than copy to other GUIs.

Find this cases with SQL:

SELECT    wms_upload_url, wms.wms_version, wms.wms_id,
	  gui.gui_name, wms.wms_title
FROM      wms
LEFT JOIN gui_wms
       ON gui_wms.fkey_wms_id  = wms.wms_id
LEFT JOIN gui
       ON gui.gui_id  = gui_wms.fkey_gui_id
WHERE     wms.wms_upload_url IN 
         (SELECT    wms_upload_url  FROM   wms
          GROUP BY  wms_upload_url  HAVING Count(wms_id) > 1)
ORDER BY  wms_upload_url, wms.wms_version, wms.wms_id, gui.gui_name;

May be its usefull to upload a wms with different versions.


Deutsch

Verlorene WMS

Wenn ein WMS aus allen GUIs entfernt wurde, ist er über die Admin-Oberfläche (z.B. WMS_löschen) nicht mehr sichtbar. Trotzdem sind noch Daten in der Tabelle wms und in den abhängigen Tabellen layer und wms_format dazu gespeichert.

Es gibt jedoch keinen Eintrag mehr im der Verbindungstabelle gui_wms, der auf diesen wms verknüpft.

Diese Fälle können in der Datenbank gefunden werden mit dem SQL-View:

SELECT wms_id, wms_version, wms_title, wms_upload_url
FROM   wms 
WHERE NOT EXISTS 
      (SELECT * FROM gui_wms 
       WHERE gui_wms.fkey_wms_id = wms.wms_id) 
ORDER BY wms.wms_id;

Sie können gelöscht werden mit:

DELETE FROM wms 
WHERE NOT EXISTS 
     (SELECT * FROM gui_wms 
      WHERE gui_wms.fkey_wms_id = wms.wms_id);

Mehrfache WMS

Werden WMS mehrfach hochgeladen (get capabilities), dann werden für die gleiche URL mehrere IDs vergeben. Das erschwert die Administration z.B. beim Aktualisieren. Besser ist es, einen WMS nur einmal hochzuladen und dann von GUI zu GUI zu kopieren.

Solche Fälle findet man mit dem SQL:

SELECT    wms_upload_url, wms.wms_version, wms.wms_id,
	  gui.gui_name, wms.wms_title
FROM      wms
LEFT JOIN gui_wms
       ON gui_wms.fkey_wms_id  = wms.wms_id
LEFT JOIN gui
       ON gui.gui_id  = gui_wms.fkey_gui_id
WHERE     wms.wms_upload_url IN 
         (SELECT    wms_upload_url  FROM   wms
          GROUP BY  wms_upload_url  HAVING Count(wms_id) > 1)
ORDER BY  wms_upload_url, wms.wms_version, wms.wms_id, gui.gui_name;

Dies muss manuell über die Admin-GUI bereinigt werden. Redundante Einträge aus GUIs entfernen (Remove) und statt dessen Kopien aus anderen GUIs eintragen.

Es kann jedoch sinnvoll sein, wenn eine WMS-URL mit verschiedenen Versionen gespeichert ist.

Personal tools