Django 切换CMS的工具和提示
我在一所大学工作,在过去的一年里,我们终于摆脱了几千页的静态HTML网站,转到了Drupal网站。这显然需要大量的数据输入 如果您已经在使用CMS,并且正在切换到另一个更适合您需要的CMS,该怎么办?在如此巨大的变化中,您如何将堆积如山的数据输入最小化?是否有为此而构建的工具,或者应该遵循一些最佳实践?Drupal模块将提供很大的帮助。将为您提供该过程的概述 Drupalcon DC 2009上的演示文稿中的内容可能有些过时,但也提供了一个很好的介绍。迁移+表向导(以及模式+视图)是一个不错的选择。使用表向导,您可以使用migrate将任何表公开给drupal并相应地映射字段 请查看以下详细信息:Django 切换CMS的工具和提示,django,drupal,content-management-system,joomla,Django,Drupal,Content Management System,Joomla,我在一所大学工作,在过去的一年里,我们终于摆脱了几千页的静态HTML网站,转到了Drupal网站。这显然需要大量的数据输入 如果您已经在使用CMS,并且正在切换到另一个更适合您需要的CMS,该怎么办?在如此巨大的变化中,您如何将堆积如山的数据输入最小化?是否有为此而构建的工具,或者应该遵循一些最佳实践?Drupal模块将提供很大的帮助。将为您提供该过程的概述 Drupalcon DC 2009上的演示文稿中的内容可能有些过时,但也提供了一个很好的介绍。迁移+表向导(以及模式+视图)是一个不错的选
- 无论发生什么情况,都需要手动对数据进行预处理和后处理。尽早接受您的数据可能处于比您想象的更糟糕的状态:字段将被误用;记录到记录的引用(外键)可能没有正确实现,或者根本没有实现;内容可能需要删除,有时甚至是不好或不正确的
- 检查您的数据库编码。较旧的数据库将不会采用Unicode编码,如果您必须导出数据转储并将其导入其他地方,则会变得不耐烦。即使这样,假设你的数据中会有一些古怪的不可打印字符:像Word这样的程序似乎不知怎么地到处注入它们,我看到。。。代码点。。。你们这些人不会相信的。考虑在启动这些数据之前(甚至扫描数据库转储)扫描数据。决定是否将其丢弃,或尝试将其转换为单词“智能”标点符号
- 从隐含数据结构创建显式数据结构非常困难。如果传入数据有单独的日期字段,则可以将其映射到日期字段;如果它有一个日期作为一大块HTML的一部分,即使该日期在带有id属性的标记中,简单的脚本编写也不会起作用。您可以将离线脚本与BeautifulSoup结合使用,或者(如果您的HTML更好的话)使用更快的lxml来预处理数据集、提取这些隐式字段并将它们保存为隐式格式。考虑创建一个中间数据库,这些修改将要进行。
- Migrate模块非常优秀,但要获得真正良好的数据保真度并玩更聪明的把戏,您可能需要了解它的钩子系统(Drupal对遵循特定命名方案的函数的术语)以及编写模块以放入这些钩子的基础知识(模块大体上只是一个PHP文件,其中所有函数都以相同的文本开头,即模块文件的名称。)
- 所有导入的内容都应标记为至少进行粗略检查。您可以在状态为0(即未发布)的情况下导入内容,然后使用“视图”模块创建一个视图来浏览内容并在其他选项卡中打开以进行检查。视图批量操作允许您在视图项旁边设置一组复选框,以便您可以一次证明多个节点
- 希望运行并重新运行导入,每次修复新内容。尽早检查十个或二十个项目。如果有任何问题,请检查十个或二十个以上。修复并重复导入
- 评估一次导入运行可能需要多长时间。悲观一点:我们有一次导入,我们在引入完整数据集时预计需要十个小时,但遇到了指数级的减速;在我们最终修复一些缓慢的查询之前,预计需要两周的时间
- 如果有疑问,或者如果你认为以上技术方面的工作需要比工作本身更多的时间,那么就雇佣临时工来做数据。但你仍然需要良好的质量控制,尽可能早地在他们的工作期间。Drupal开发人员也可以被雇佣:试试你所在国家的相关IRC频道,或者在rele中发布一条说明Vo.Gr.Pr.PrUpal.Org小组。他们比临时工贵,但他们通常写得更好。考虑雇用一个代理:这是一个无耻的插件,因为我为一个工作,但有时最好让专家参与这些特定的工作。
- 真正好的进口产品总是很难,比你想象的要难。别让它让你失望