自从我们发布了Joomla! 1.5已经一年了,让我惊讶的是,为迁移器编写的第三方ETL插件如此之少。当David Gal发布第一个迁移器时,许多开发者抱怨它不可配置,他们无法成为迁移的一部分。所以构建一个可插拔的迁移器是我的主要目标,1.0的迁移器要做到完全可插拔:你可以添加任意多的表,包括第三方迁移器插件。据我所知,只有JoomlaTools为DocMAN编写了一个ETL插件,许多第三方开发者建议他们的用户应该手动备份和迁移他们的数据。当编写一个ETL插件意味着数据库中的数据通过迁移器导出,然后在安装过程中导入到你的新1.5站点时,这是很奇怪的。除了安装ETL插件之外,安装过程中没有其他额外步骤,只需在实站上重新安装扩展。

那么编写一个ETL插件有多难呢?JoomlaTools实际上在去年四月写了一篇关于编写ETL插件的博客文章,我们还在Joomla!文档网站上有一些文档。我2007年八月的旧演示也有关于编写ETL插件的信息,而且基本系统自那时以来变化不大。基本上,你需要填写一些关于你想迁移的表名、描述性名称和创建表所需的SQL,以便它可以加载分发。如果你只是直接迁移你的数据,这真的非常简单。但它可以做更多的事情。

 

ETL代表提取、转换和加载。提取阶段是大多数人会使用的,如果您只是在移动表(不更改模式或字段),则无需进行任何转换。我们记录的基本ETL插件只执行此操作,不进行转换。转换的强大之处在于能够重命名、删除或向表中添加字段,以及在数据从您的1.0站点导出时更改这些字段的内容。这在使用起来非常方便,尤其是如果您正在为一个被弃用的旧1.0扩展编写ETL插件,以便将其转换为您的1.5原生扩展数据格式。这样,从1.0到1.5的过渡几乎是无缝的,除了安装较新的1.5版本的扩展。

 

而且,如上所述,编写ETL插件并不需要您是扩展的原始开发者。如果您是扩展开发者,我强烈建议您编写一个ETL插件,以帮助用户将数据从他们的1.0站点迁移到1.5。但是,即使您不是扩展的开发者,您仍然可以编写ETL插件。我还鼓励任何编写ETL插件的人将其提交到JED的ETL插件部分(JoomlaTools的DocMAN ETL插件看起来有点孤单)。我们拥有的ETL插件越多,每个人都会更快乐,从1.0迁移到1.5也会更容易:)