使用Orchard CMS 1.6,我设置了四个环境:开发,测试,分期和生产。
我在开发中对Orchard UI Dashboard做了很多更改,我想将这些更改迁移到其他环境中。一个相关的问题表明,这可以通过Orchard仪表板使用导入/导出模块手动完成,但是我正在寻找一个数据迁移的解决方案,我可以自动化。实际上,我希望在这个相关问题的公认答案中确定SQL Server 2005/2008数据库的第三步:"将数据库迁移到生产环境"。
关于在Azure之外的多个环境中设置和维护Orchard CMS的文档并不多,我目前的Orchard数据库中有88个表。显然,任何我能做的自动化数据部署都将是一个巨大的帮助。
我在开发和测试(目前反映生产)之间运行了Schema和数据比较。在备份数据库和复制模式之后,我注意到几乎每个表中都有很多数据差异。在迁移数据之前,我希望确保已经隔离了不想更改的表。像连接字符串这样的环境变量必须保持不变。
哪些表应该保存在它们的环境中?
现在我认为他们是:
-
Orchard_Users_UserPartRecord
-我在生产中有用户,我不想在其他任何地方。 - 环境数据-我有连接字符串,我在一个表中为每个环境不同的自定义模块。
我错过什么了吗?在目标环境的表中应该保留哪些其他数据?
我真的不建议进行数据库迁移:您将在id、关系等方面遇到巨大的问题。内容项分布在许多表上,有时以难以预测的方式分布,并且不能保证在不同的环境中相同的id没有归属于不同的项或记录。这就是为什么推荐使用像import/export这样的高级过程的原因。
自动化它绝对是我们想要的,并且有一个功能分支正在为Orchard的未来版本做这项工作(feature/deployment IIRC)。
同时,我很确定导入和导出也作为CLI的命令存在,这应该使您能够在一定程度上自动化它。