Migrieren eines bestimmten Arbeitsbereichs, Speichers und Layers in Geoserver

13

Geoserver läuft auf einer Entwicklungs- und Produktionsumgebung. Ich möchte nur einen Arbeitsbereich, ein Geschäft, eine Ebene, einen Stil usw. von der Entwicklung zur Produktion migrieren. Wie kann ich das machen?

Ich weiß, dass ich das gesamte Datenverzeichnis in die Produktion kopieren und Geoserver neu starten kann. Aber dann werden alle Arbeitsbereiche, Geschäfte usw. migriert. Der Punkt ist, dass ich nur einen Arbeitsbereich, ein Geschäft usw. haben möchte.

In der Entwicklungsumgebung habe ich mehrere Testarbeitsbereiche, -speicher und -ebenen, die ich nicht für die Produktion verwenden möchte.

Im Datenverzeichnis sehe ich ein Verzeichnis gwc-levels mit vielen xml-Dateien. Aber woher weiß ich, welche XML-Datei welche Ebene ist?

Stefan
quelle

Antworten:

13

Dies ist relativ einfach und birgt nur ein geringes Risiko. Stellen Sie jedoch sicher, dass Sie trotzdem ein Backup Ihres Produktionsdatenverzeichnisses haben.

Kopieren Sie einfach die folgenden Verzeichnisse / Dateien:

/workspaces/YOUR_WORKSPACE_NAME/ Der Arbeitsbereich Verzeichnis , dass Sie tatsächlich kopieren Sie enthält die Speicher und Schicht Erklärungen sowie den Arbeitsbereich selbst. Idealerweise werden Sie in Ihrem Setup die Ebenen "Für die Produktion bestimmt" und "Testen" in getrennten Arbeitsbereichen aufbewahren, wodurch dies in Zukunft sehr einfach wird.

/layergroups/your_layer_group.xml - Wenn Sie eine Layergruppe haben, die Sie kopieren möchten.

styles\stylename.sld - styles\stylename.xml - Dies ist das potenziell schwierige; Wenn Sie Ihren Stil seit seiner Erstellung umbenannt haben, stimmen der XML-Name und der SLD-Name nicht überein. Das XML ist der aktuelle Name, der SLD-Name ist der Name, den Sie ursprünglich erstellt haben. Sie können in der XML nachsehen, auf welche SLD-Datei sie verweist.

Sobald alles kopiert ist, starten Sie GeoServer neu.

Mit dieser Methode habe ich zuvor Dutzende von Ebenen und mehr als 200 Stile mit wenig Mühe manuell übertragen.

GIS-Jonathan
quelle
2
Noch ein Trick, wenn die Migration von Datenspeichern und Layern nicht funktioniert. Leeren Sie einfach das Kennwort-Tag in der Datei datastore.xml in jedem Datenspeicherordner. Ich hatte einen Fehler bei der Migration von 2.8 auf 2.9, da das Hash der Kennwörter ein Problem darstellt.
Geogeek
Ich musste den Standardstil für Ebenen ohne benutzerdefinierten Stil erneut anwenden, es traten jedoch keine weiteren Probleme auf.
Stijn
@geogeek es ist auch möglich, die Zeichenfolgen wie crypt2:YOUR_ENCRYPTED_PASSWORD_HEREmit zu ersetzen plain:YOUR_PASSWORD_HERE. Dies wird im Allgemeinen nicht empfohlen, kann jedoch für Tests und Experimente nützlich sein.
SeldomNeedy
Ich habe dieselbe Anweisung mit Geoserver 2.15 angewendet. Ich kann den Arbeitsbereich und die Speicher sehen, aber die Ebenen kommen nicht. Was mache ich falsch?
Ncelik
Wenn Sie das plain:Präfix in eine "datastore.xml" -Datei einfügen, wird Geoserver angewiesen , das Kennwort einfach zu halten . Wenn es kein Präfix gibt (nur das Passwort selbst), verschleiert Geoserver das Passwort in der Datei, wenn die Einstellungen das nächste Mal gespeichert werden. Ich bin nicht sicher, was in diesem Fall passiert, wenn das Kennwort selbst einen :(Doppelpunkt) enthält
SeldomNeedy