2013-03-04 64 views
4

如果一个人有一个当地建造果园CMS - 故意从完整的源代码生成,所以我可以写我自己的扩展/让我自己的改变 - 这是否意味着我永远不能通过发布的生产运行实例对仪表板进行更改?果园CMS - 如何同步生产,本地仪表板项目更改

的问题是,如果我安装一个模块(或10或100)或通过主题制作网站网上,那些不那么反映在我的本地副本,因此如何将两个获得同步增长?那么这个答案是不容易的,“当然你不能”?但是这意味着不能简单地使用任何浏览器(例如旅行时等)在需要时进行更改(当然还有很多事情,例如编辑内容,只是简单地进行更改数据库,这不是我关心的)。

还是确实有一个简单的方法来同步本地和远程源(通过FTP我敢肯定,在这种情况下,从远程同步到本地),如果当我提出通过生产实例的变化?如果是这样,那么有什么先决条件,例如,我必须转而预先编制这个工作吗?或者是选项严格两个:1)始终工作从本地副本,并从那里发布更改(总是),或2)总是工作从生产/非本地实例,但这意味着实际上你不/甚至不能有本地实例?

p.s.这是发布为一个天蓝色的网站共享,我正在Visual Studio 2012(而不是webmatrix)工作

回答

6

简而言之,最好的做法是使您的开发箱上的代码更改,生产中的数据更改。添加到该源代码管理和数据库备份以实现回滚和灾难恢复。我们将通过启用数据分级来尽快改进这个故事,但现在这是最佳实践。所以:

  1. 永远不会在生产中安装模块(这是一个代码更改,所以应该在dev上完成)。当然,启用该模块必须在生产中完成,只要它的正确行为已在dev或staging中验证过。
  2. 更新网站上prod的数据,除非您愿意在网站之间导出/导入该数据。
  3. 请使用草稿(保存与发布按钮)功能准备新版本的内容。
  4. 定期将prod数据库恢复到您的开发盒中,以便在dev中使用合理的最新数据。
+0

感谢贝特朗,我想那就解决了。到开发箱,我们会去(并留下)。 – 2013-03-04 18:32:27

+0

但是,如何防止覆盖在产品中的数据,您不希望部署时间?我有一个写入数据库的自定义模块,因此按照您的建议迁移到生产环境意味着我需要编写从dev中安装的模块(或者使用某些sql diff/migration工具?)所做的更改,所以我可以有效地做一个合并w/prod。除非我在你所说的内容中缺少某些东西? – Tone 2013-04-02 06:00:12

+0

什么覆盖?不要合并数据。当您从dev部署到prod时,迁移将在第一个请求上运行。 – 2013-04-02 06:14:25