Answers:
对于开发人员站点上的内容类型,视图和结构更改,请查看使用功能将数据库导出为代码。
对于内容迁移,有很多选择,但是没有一个可靠的解决方案。一个示例是Deployment Suite。
在这里,我基本上采用了两种思想流派(第三种思想流派,进行数据库比较,由于复杂度很高,我将不予讨论)。
1)通过删除生产数据库并导入开发数据库的mysqldump进行部署。(可选)预先在引用SQL转储中的dev URL的任何硬编码绝对链接上运行正则表达式查找/替换。将dev db导入prod后,自动运行SQL语句(通常通过脚本)以更改prod与dev不同的任何设置(例如,可能变量表中有一些连接设置,用于连接到您需要更改以指向产品外部系统而不是开发版本)。
2)如budda所述,将功能模块用于管理员设置,并将节点导出模块与内容删除模块一起用于内容导出/导入。因此,工作流程是:
值得一提的是,我强烈建议您采用一种标准的工作流程,其中的内容只能朝一个方向发展。开发->产品或产品->开发(我更喜欢这个)。
我已经做到了这一点,并且正在某些大型系统上做到了这一点,但效果相当不错,但是总会有很多方法可以切成这个苹果,选择哪种方法最适合您。
实时站点副本的转储数据库和SQL文件中站点的开发副本(两个转储使用相同的参数和设置)。
然后,使用小型比较工具ExamDiff比较两个SQL文件。它将以不同的颜色并排显示文件差异。您也可以直接跳至差异(无需滚动)。检查差异并在实时站点的SQL文件中添加/编辑行。确保该文件中没有开发环境的绝对路径/ URL。大功告成!是时候恢复活动站点的数据库了。
让您的生活更轻松:第一步,仅转储那些已更改的表。例如,如果您已在开发副本中编辑了一个针对单独表的模块,则仅转储该表。如果您不确定特定的表,则可以进行整个数据库转储。