轻松实现Drive-by transmogrification!
项目描述
Mr.Migrator: 轻松实现Drive-by transmogrification!
mr.migrator是一个transmogrifier管道运行器,可以通过命令行或作为Plone插件使用。
有关问题和评论,请访问 http://github.com/collective/mr.migrator/issues
简介
Transmogrifier是一个强大的工具,用于创建名为“管道”的转换过程。Transmogrifier为你提供了创建和共享这些管道的工具,但不提供运行管道的简单方法。Mr.migrator旨在弥合这一差距。
Mr.Migrator提供了以下功能
一个buildout配方,你可以用它来重写指定的管道。
一个带有帮助的命令行脚本,允许你运行管道并查看其进度。当你与transmogrify.ploneremote或其他蓝图一起使用时非常有用,这些蓝图不应该在Plone进程中运行。
一个Plone插件,一旦安装,就可以选择要运行的管道,提供重写管道选项的表单,然后提供运行中的管道的进度。当你想要使用应该在Plone进程中运行的plone.app.transmogrifier蓝图时,这非常有用。
获取管道
管道是来自collective.transmogrifier的一个概念,其中字典项通过一系列步骤传递,每个步骤都会向外部源添加、删除或上传信息。管道使用INI风格语法在配置文件中进行配置。Mr.Migrator允许你运行你自己构建的管道,或者
构建自己的管道
查看collective.transmogrifer 管道以获取更多详细信息。
一旦你创建了管道 .cfg 文件,你就可以通过命令行使用它
migrate --pipeline=mypipeline.cfg
或者如果通过buildout安装
[migrate] recipe = mr.migrator pipeline = mypipeline.cfg
如果你在管道中使用蓝图,你需要确保注册它们的zcml配置已执行。如果你使用buildout,可以使用以下命令
[buildout] parts += mr.migrator [migrator] recipe = mr.migrator pipeline = mypipeline.cfg eggs = transmogrify.sqlalchemy zcml = transmogrify.sqlalchemy
这将确保包含蓝图的包被下载,并且在运行管道之前运行其zcml,以便注册蓝图。
如果你不使用buildout,你需要通过以下方式告诉运行者要加载zcml的包
migrate --zcml=transmogrify.sqlalchemy,transmogrify.other
如果你要包含以下entry_point的蓝图包,你可以跳过上面的zcml设置
entry-points = {"z3c.autoinclude.plugin":['target = transmogrify']}
目前还没有使用Plone插件运行自定义管道的方法。你必须按照以下方式注册它。
使用已注册的管道
如果管道已通过zcml在另一个包内部注册,如下所示
<configure xmlns="http://namespaces.zope.org/zope" xmlns:transmogrifier="http://namespaces.plone.org/transmogrifier" i18n_domain="collective.transmogrifier"> <transmogrifier:registerConfig name="exampleconfig" title="Example pipeline configuration" description="This is an example pipeline configuration" configuration="example.cfg" /> </configure>
并且该包有一个可以启用zcml加载的entry point,如下所示
entry_points = {"z3c.autoinclude.plugin":['target = transmogrify']}
然后你可以通过以下方式让mr.migrator运行该管道
migrate --pipeline=exampleconfig
或者
[migrate] recipe = mr.migrator pipeline = exampleconfig
一个声明管道的包的例子,该管道设计为可以重写的是 funnelweb。
重写管道值
管道被组织成一系列步骤,爬取项目通过这些步骤最终被上传。每个步骤有一个或多个配置选项,因此你可以根据需要自定义导入过程。几乎所有导入都需要一定级别的配置。
每个配置键的第一个部分是步骤,例如 crawler。第二部分是该特定步骤的特定配置选项。例如,url。然后是 = 和值或值。
配置选项可以是buildout部分的一部分,例如。
[buildout] parts += mr.migrator [mr.migrator] recipe = mr.migrator crawler-url=http://www.whitehouse.gov
或者可以通过命令行覆盖相同的选项
$> bin/migrate --crawler:url=http://www.whitehouse.gov
某些选项需要在构建部分中多行。这些可以通过命令行重复相同的参数来覆盖,例如:
$> bin/migrate --crawler:ignore=\.mp3 --crawler:ignore=\.pdf
您可以使用命令行帮助查看可用选项的列表。
$> bin/migrate --help
控制日志记录
您可以通过设置调试命令行开关来在任何特定的集合上显示额外的调试输出。例如,要查看模板匹配失败的其他详细信息。
$> bin/mr.migrator --template1:debug
直接与transmogrifier交互(高级)
您可能需要为您特定的转换用例插入更多的转换步骤。为此,您可以扩展插件底层的transmogrifier管道。mr.migrator使用transmogrifier管道来执行所需的转换,并且所有命令行和配方选项都引用管道中的选项。
您可以使用以下命令查看管道及其所有选项。
$> bin/mr.migrator --show-pipeline
您还可以保存此管道并根据自己的需求进行自定义。
$> bin/mr.migrator --show-pipeline > pipeline.cfg $> {edit} pipeline.cfg $> bin/mr.migrator --pipeline=pipeline.cfg
自定义管道允许您添加标准mr.migrator工具未预先考虑的个人转换。
请参阅transmogrifier文档,了解如何添加自己的蓝图或将现有的蓝图添加到自定义管道中。
使用外部蓝图
如果您已决定需要自定义管道并想要安装使用蓝图而不是mr.migrator或transmogrifier中已包含的蓝图进行转换的步骤,您可以使用mr.migrator构建部分的“eggs”选项来包含它们。
[mr.migrator] recipe = mr.migrator eggs = myblueprintpackage pipeline = mypipeline.cfg
但是,这仅适用于蓝图包包含以下setuptools入口点的设置.py中。
entry_points=""" [z3c.autoinclude.plugin] target = transmogrify """, )
管道配置的帮助语法
待办事项
Plone中的Mr.Migrator
*开发中*
Mr.Migrator需要与提供注册管道的包结合使用。
将mr.migrator安装到您的构建中。
安装提供您管道的包,如funnelweb或collective.jsonmigrator。
转到您想要导入内容的网站位置,并选择操作 > 在此处进行Mr.Migrate(或者,打开URL @@mr.migrator)。
从下拉列表中选择您想要的管道。
将显示一个用于填写管道额外配置的表单(该表单可能是从.cfg自动生成的,或者是由管道作者设计的表单)。
点击运行。
弹出进度反馈对话框,显示活动日志。
待办事项
完成自动表单,使其适用于所有情况。
结合argparse和autoform代码。
执行进度对话框。
为包提供注册表单以及管道的钩点。
当找不到管道时:显示有关如何找到它们以及如何安装它们的帮助信息。
贡献
感谢
Alex Clark - 为名称提供。
Rok Garbas - z3cform的原始代码。
Dylan Jay - 命令行运行器的原始代码。
贡献者
“Dylan Jay”,作者
“Alex Clark”,维护者
“Leonardo J. Caballero G.”,测试员,西班牙翻译者
变更日志
1.2 (2017-05-15)
添加西班牙翻译。[macagua]
添加更多关于i18n支持的改进。[macagua]
添加Plone 4.3.x版本的构建配置文件。[macagua]
修复 IOError: [Errno 2] No such file or directory: mr/migrator/autoinclude.zcml 文件缺失。[macagua]
更新Plone 3.3.x版本的构建配置文件。[macagua]
修复与安全热补丁20160830相关的表单问题。[agitator]
1.1 (2015-10-22)
删除browserlayer注册,因此不需要安装mr.migrator即可使用。调用/@@mr.migrator就足够了。
添加卸载配置文件。[thet]
允许通过网页在 @@mr.migrator 视图中导入任何管道配置。以前,只有包含 plone.app.transmogrifier.atschemaupdater 蓝图的管道才会显示。现在可以使用任何管道,例如仅处理 Dexterity 对象的管道。[thet]
Pep8。[thet]
1.0.1 (2012-09-18)
恢复手动 zcml 加载。[djay]
1.0 (2012-04-28)
修复 setup.py 的问题,破坏了 buildout。[djay]
修复了名称错误:全局名称 'cparser' 未定义,问题 #6。[gborelli]
修复默认配置文件。[toutpt]
修复导入错误。[toutpt]
1.0b11 (2012-04-25)
支持管道包含。[djay]
1.0b10 (2012-01-23)
撤销 ec799dcd3d 的一部分,导致 ConfigurationErrors。[aclark]
1.0b9 (2012-01-23)
修复棕色袋子发布(坏的 MANIFEST)。[aclark]
1.0b8 (2012-01-23)
修复棕色袋子发布(缺少 zcml)。[aclark]
1.0b7 (2012-01-23)
在当前工作目录中查找 pipeline.cfg。[aclark]
1.0b6 (2012-01-23)
修复棕色袋子发布。[aclark]
1.0b5 (2012-01-22)
错误修复:支持 –zcml 参数。[aclark]
1.0b4 (2011-08-14)
错误修复:ZCML 配置。[aclark]
1.0b3 (2011-08-14)
错误修复:ZCML 配置。[aclark]
1.0b2 (2011-08-14)
错误修复:Python 2.4 兼容。[aclark]
1.0b1 (2011-06-29)
允许在命令行中运行蓝图包的 zcml 的方式。[djay]
将命令行运行器从 funnelweb 中拆分出来。[djay]
添加在 Plone 内运行 transmogrifier 的表单的开始。[djay]
项目详细信息
mr.migrator-1.2.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e619e8183715de902196abbfea3ffd6f6f012eb49f11867411fc4a2aaaac4760 |
|
MD5 | f597fcc10fc2f095d80b9b76d6c5f4bb |
|
BLAKE2b-256 | 41d61309751a99b7f43a8637b3b65f958cc26e18776f28344c9dd5417d283cae |