Migrate Module Usage

来源:互联网 发布:多普达t5399软件 编辑:程序博客网 时间:2024/06/02 05:29

本文纯属模块文档翻译,原文请移步:Migrate,基于Drupal的Migrate模块(7.x-2.5)来意译,可能随时间增长会有少量改动。如果您需要转载原文请同时提供原文的URL地址,如果要引用这篇中文的翻译文章,也请在清晰的地方提供本文的原文地址,谢谢。

Migrate模块提供了一种灵活的框架,方便用户从其他的数据源将数据迁移到Drupal的生态系统中。但是有一件重要的事要明确,Migrate模块是一个给开发者使用的模块,如果你从来没有用PHP写过面向对象的程序,那这个模块可能不适合你。这个模块首要的目的是提供一个底层的平台来管理那些复杂的、大范围的站点间的数据迁移。然而,同样可以基于这个模块开发一个可以通过配置界面,由非技术人员就可以完成简单的数据迁移功能的模块。有一个将WordPress数据导入到Drupal的模块的例子:WordPress Migrate

Migrate模块的组成部分

  1. 有API来开发和管理迁移的整个过程。
  2. 一套drush命令行的工具,用来执行迁移的过程,并能显示状态。
  3. 包含migrate_ui模块,提供可视化的界面来监控迁移的状态。
  4. 包含一些名字例如migrate_example*的模块,其中提供了一些如果自己开发迁移过程的有用的技术。

Migrate模块提供的功能

  1. 整个模块开发是面向对象的,可以使用面向对象标准的方法去扩展或者覆写它。
  2. 内建支持PDO(DBTNG)、XML、CSV、JSON、原生的MSSQL和Oracle API的数据源,同时也可以扩展其他的数据源。
  3. 内建支持将node、user、taxonomy term、comment和file作为数据导入的目标内容类型,同时也可以扩展其他的内容类型或者字段作为数据导入的目标类型。
  4. 通过维护数据库表来维护数据源与Drupal中目标对象之间的对应关系。
  5. 导入的动作是可以回滚的,允许简单的试错(trial-and-error)的迁移开发模式。
  6. 提供工具来管理迁移过来的数据的依赖关系。
  7. 自动控制内存的使用量,并生成相应的日志(性能没有大问题)。
  8. 提供一个web界面来让数据拥有者和实施者之间协作开发和管理整个迁移过程。

Migrate模块中的面向对象的架构

Migrate (2.x)的API有一些描述了数据源,Drupal目标对象和他们之间关系的类(classes)。这些类通过了为了满足特殊需求的数据迁移的实现方式。Handlers同样也允许每种不同的应用在迁移过程中的关键时刻参与进来。

Migrate模块中的协作支持

模块中包含的migrate_ui模块额外的显示了迁移过程的状态,也展示了每种迁移任务的配置细节,尤其是数据源和数据目标之间的字段的对应关系。Mapping同样可以与外部的一个链接或者一个标记相关联,这样数据提供者和迁移实现者都可以通过点击查看这些特殊的执行细节。当然Mapping的过程也可以是严格按照一定的流程的,例如,有些操作会在数据提供者自己的组内通过高亮的方式显示提醒。同时那些数据源和数据目标还没有被关联起来,或者有些是明确不要被关联起来的数据,都可以在他们的组内显示出来,以至于不会让他们忽略掉这些重要的内容。

相应的其他的后续链接

以下罗列的是后续会翻译的原文,如果有提示有译文的说明已经完成翻译:
  • Migrate module architecture ( 译文 )
  • Getting started with Migrate (译文)
  • Migration and group registration
  • Migration classes
  • Source classes
  • Destination classes
  • Map classes
  • Field mappings
  • Handler classes

本文作者的其他联系方式:
  • 新浪微博:http://weibo.com/345870926
  • Twitter:https://twitter.com/tony0918
  • Facebook:https://www.facebook.com/tonymao000
  • Google+:https://www.google.com/+%E6%85%A7%E9%8E%8F%E6%AF%9BTonyMao
  • Github:https://github.com/tony0918
原创粉丝点击