使用 python 导出 zope 文件夹
我们有两台 zope 服务器运行我们公司的内部站点。 一个是实时站点,一个是开发站点。 我正在编写一个 python 脚本,将所有内容从开发服务器移动到实时服务器。 目前,该过程涉及在 zope 管理界面中完成的一系列步骤。 我需要使所有这些自动化,以便运行一个脚本即可处理所有事情。 我需要做的一件事是从实时服务器导出一个文件夹,以便我可以在更新后将其重新导入回实时站点。 我怎样才能从 python 脚本中做到这一点?
我们使用 Zope 2.8 和 python 2.3.4
We have two zope servers running our company's internal site. One is the live site and one is the dev site. I'm working on writing a python script that moves everything from the dev server to the live server. Right now the process involves a bunch of steps that are done in the zope management interface. I need to make all that automatic so that running one script handles it all. One thing I need to do is export one folder from the live server so that I can reimport it back into the live site after the update. How can I do this from a python script?
We're using Zope 2.8 and python 2.3.4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以尝试使用位于文件
$ZOPE_HOME/lib/python/OFS/ObjectManager.py
中的函数manage_exportObject
和manage_importObject
假设我们安装两个 Zope 2.8 实例,位于:
/tmp/instance/dev
用于开发服务器(端口 8080)/tmp/instance/prod
用于生产服务器(端口 9090)在开发服务器的ZMI中,我创建了两个文件夹
/MyFolder1
和/MyFolder2
,其中包含一些页面模板。 以下 Python 脚本导出 .zexp 文件中的每个文件夹,并将它们导入生产实例的 ZMI 中:You can try to use the functions
manage_exportObject
andmanage_importObject
located in the file$ZOPE_HOME/lib/python/OFS/ObjectManager.py
Let say we install two Zope 2.8 instances located at:
/tmp/instance/dev
for the development server (port 8080)/tmp/instance/prod
for the production server (port 9090)In the ZMI of the development server, I have created two folders
/MyFolder1
and/MyFolder2
containing some page templates. The following Python script exports each folder in .zexp files, and imports them in the ZMI of the production instance:如果您真的移动所有内容,您可能只需移动 Data.fs 即可。 但除此之外,上面的导入/导出是一个好方法。
If you really move everything you could probably just move the Data.fs instead. But otherwise the import/export above is a good way.
为了使这个更通用并允许复制不在根目录中的文件夹,我会做这样的事情:
如果我有代表,我会将其添加到其他答案中,但是唉......
如果有人想合并它们,请继续。
To make this more general and allow copying folders not in the root directory I would do something like this:
If I had the rep I would add this to the other answer but alas...
If someone wants to merge them, please go ahead.