4

如果一个人有一个本地构建的 Orchard CMS - 故意从完整的源代码构建,以便我可以编写自己的扩展/进行自己的更改 - 这是否意味着我永远无法通过已发布的生产运行实例对站点进行仪表板更改?

问题是,如果我通过在线生产站点安装一个模块(或 10 个或 100 个)或主题,这些都不会反映在我的本地副本中,那么这两者如何同步呢?那么答案是“当然不能”吗?但这意味着永远无法利用简单地在任何浏览器上跳转(例如在旅行时等)在需要时进行更改(当然有很多事情,例如编辑内容,只是对数据库,这不是我关心的问题)。

或者,如果以及当我通过生产实例进行更改时,是否确实有一种简单的方法来同步本地和远程源(我确定通过 ftp,在这种情况下从远程同步到本地)?如果是这样,有什么先决条件,例如,我必须转向预编译才能使其工作?或者选项严格来说是两个:1)始终从本地副本工作并从那里发布更改(始终),或 2)始终从生产/非本地实例工作,但这意味着实际上您没有/甚至不能拥有本地实例?

ps这是作为共享的天蓝色网站发布的,我在Visual Studio 2012(不是webmatrix)中工作

4

1 回答 1

6

简而言之,好的做法是在您的开发盒上更改代码,并在生产中更改数据。添加源控制和数据库备份以实现回滚能力和灾难恢复。我们将很快通过启用数据分段来改进这个故事,但目前这是最佳实践。所以:

  1. 永远不要在生产中安装模块(这是一个代码更改,所以应该在开发中完成)。当然,一旦在 dev 或 staging 中验证了其正确行为,就必须在生产中启用该模块。
  2. 更新站点在产品上的数据,除非您愿意在站点之间导出/导入该数据。
  3. 请务必使用草稿(保存与发布按钮)功能来准备新版本的内容。
  4. 定期将 prod 数据库恢复到您的开发盒中,以便在开发中使用合理的最新数据。
于 2013-03-04T18:23:41.747 回答