如何在Geoserver中迁移特定的工作区,存储和图层


13

Geoserver在开发和生产环境上运行。我只想将一个工作空间,商店,图层,样式等从开发迁移到生产。我怎样才能做到这一点?

我知道我可以将整个数据目录复制到生产环境并重新启动geoserver;但并非所有工作区,商店等都已迁移。关键是我只需要一个工作区,商店等。

在开发环境中,我有几个测试工作区,存储区和层,我不想在生产环境中使用它们。

在data-dir中,我看到一个目录gwc-layers,其中包含许多xml文件。但是我怎么知道哪个xml是哪个层呢?

Answers:


13

这非常简单,风险很小。但是无论如何,一定要备份生产数据目录。

只需复制以下目录/文件:

/workspaces/YOUR_WORKSPACE_NAME/ 您复制的工作空间目录实际上包含存储图层声明以及工作空间本身。理想情况下,您将在设置中将“用于生产”和“测试”层保留在单独的工作区中,这将使将来的工作变得非常容易。

/layergroups/your_layer_group.xml -如果您有图层组,则要复制。

styles\stylename.sld-- styles\stylename.xml这可能是棘手的;如果自创建以来已重命名样式,则XML名称和SLD名称将不同。XML将是当前名称,SLD名称将是您最初创建它时的名称。您可以查看XML以查看其引用的SLD文件。

复制完毕后,重新启动GeoServer。

使用这种方法,我以前手动转移了几十个图层和200多种样式,几乎没有什么麻烦。


2
如果无法进行数据存储和层的迁移,则还有另一个窍门,只是清空每个数据存储文件夹中datastore.xml中的密码标签,由于密码哈希值存在问题,我从2.8迁移到2.9时遇到了一个错误。
geogeek

对于没有自定义样式的图层,我不得不重新应用默认样式,但是没有遇到任何其他问题。
Stijn

@geogeek它也可以更换琴弦一样crypt2:YOUR_ENCRYPTED_PASSWORD_HEREplain:YOUR_PASSWORD_HERE。通常不建议这样做,但对于测试和实验很有用。
SeldomNeedy

我在geoserver 2.15中应用了相同的指令,我可以看到工作区和存储,但是图层不来了吗?我究竟做错了什么?
ncelik '19

作为后续,plain:在“ datastore.xml”文件中添加前缀将告诉Geoserver 保持密码简单。如果没有前缀(仅密码本身),则在下次保存设置时,Geoserver实际上会混淆文件中的密码。我不确定如果密码本身包含:(冒号),在这种情况下会发生什么情况
-SeldomNeedy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.