Как перенести определенное рабочее пространство, хранилище и слой в Geoserver

13

Geoserver работает в среде разработки и производства. Я хотел бы перенести только одно рабочее пространство, магазин, слой, стиль и т. Д. Из разработки в производство. Как я могу это сделать?

Я знаю, что могу скопировать весь data-dir в производство и перезапустить геосервер; но затем переносятся все рабочие пространства, магазины и т. д. Дело в том, что я хочу только одно рабочее пространство, магазин и т. Д.

В среде разработки у меня есть несколько тестовых рабочих пространств, хранилищ и слоев, которые мне не нужны на производстве.

В директории data я вижу директорию gwc-Layers, в которой много xml-файлов. Но как мне узнать, какой xml и какой слой?

Стефан
источник

Ответы:

13

Это довольно просто сделать, и есть небольшой риск. Но в любом случае убедитесь, что у вас есть резервная копия каталога производственных данных.

Просто скопируйте следующие каталоги / файлы:

/workspaces/YOUR_WORKSPACE_NAME/ Каталог рабочей области, который вы копируете, на самом деле содержит объявления хранилища и слоя, а также саму рабочую область. В идеале в вашей настройке вы будете хранить слои «предназначенные для производства» и «тестирования» в отдельных рабочих пространствах, что сделает это в будущем очень простым.

/layergroups/your_layer_group.xml - Если у вас есть группа слоев, которую вы хотите скопировать.

styles\stylename.sld- styles\stylename.xmlЭто потенциально сложный вопрос; если вы переименовали свой стиль с момента его создания, имя XML и имя SLD не будут совпадать. XML будет текущим именем, имя SLD будет таким, каким оно было при первоначальном создании. Вы можете заглянуть в XML, чтобы увидеть, на какой файл SLD он ссылается.

Как только все это скопировано, перезапустите GeoServer.

Используя этот метод, я ранее вручную перенес десятки слоев и более 200 стилей без особых проблем.

ГИС-Jonathan
источник
2
Еще одна хитрость, если миграция хранилищ данных и слоев не работает, просто очистите тег пароля в datastore.xml в каждой папке хранилища данных, у меня была ошибка при переходе с 2.8 на 2.9 из-за проблемы в хэше паролей.
geogeek
Мне пришлось повторно применить стиль по умолчанию для слоев, у которых не было пользовательского стиля, но я не столкнулся с какими-либо другими проблемами.
Стейн
@geogeek это также можно заменить строки , как crypt2:YOUR_ENCRYPTED_PASSWORD_HEREс plain:YOUR_PASSWORD_HERE. Обычно это не рекомендуется, но может быть полезно для тестирования и экспериментов.
SeldomNeedy
Я применил ту же инструкцию с геосервером 2.15, я вижу рабочее пространство и магазины, но слои не приходят? Что я делаю неправильно?
ncelik
В последующем наблюдении, добавив plain:префикс в «datastore.xml» -файла расскажет Geoserver'у , чтобы сохранить пароль равнину. Если префикса нет (только сам пароль), Geoserver фактически запутает пароль в файле при следующем сохранении настроек. Я не уверен, что произойдет в этом случае, если в самом пароле есть :(двоеточие)
SeldomNeedy