Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ftp Orchard CMS-如何同步生产和本地仪表板项目更改_Ftp_Orchardcms - Fatal编程技术网

Ftp Orchard CMS-如何同步生产和本地仪表板项目更改

Ftp Orchard CMS-如何同步生产和本地仪表板项目更改,ftp,orchardcms,Ftp,Orchardcms,如果有一个本地构建的Orchard CMS——故意从完整的源代码构建,以便我可以编写自己的扩展/进行自己的更改——这是否意味着我永远无法通过发布的生产运行实例对站点进行仪表板更改 问题是,如果我通过在线制作网站安装一个模块(或10或100)或一个主题,那么这些都不会反映在我的本地副本中,那么这两个模块如何同步呢?那么答案是“当然不能”吗?但这意味着永远不能简单地使用任何浏览器(如在旅行中等)在需要时进行更改(当然,有许多事情,如编辑内容,只是对数据库进行更改,这与我无关) 或者,如果我通过生产实

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

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

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


p、 这是以azure网站共享的形式发布的,我在Visual Studio 2012(不是webmatrix)

简而言之,好的做法是在开发环境中更改代码,并在生产环境中更改数据。添加源代码管理和数据库备份以实现回滚能力和灾难恢复。我们将很快通过启用数据暂存来改进这一情况,但目前这是最佳实践。因此:

  • 永远不要在生产环境中安装模块(这是一个代码更改,所以应该在dev上完成)。当然,一旦在开发或登台中验证了模块的正确行为,就必须在生产中启用模块
  • 在prod上更新站点的数据,除非您愿意在站点之间导出/导入该数据
  • 请务必使用草稿(保存与发布按钮)功能准备内容的新版本
  • 定期将prod数据库恢复到您的dev box上,以便使用dev中合理的最新数据

  • 谢谢伯特兰,我想这就解决了。我们将进入(并留下)开发框。但是如何防止覆盖prod中您不希望在部署时出现的数据呢?我有一个写入数据库的自定义模块,因此,正如您所建议的,迁移到生产环境意味着我需要编写从dev中安装的模块所做的更改的脚本(或者可能使用一些sql diff/migration工具?),这样我就可以有效地执行合并w/prod。除非我在您所说的内容中遗漏了什么?什么覆盖?不要合并数据。当您从dev部署到prod时,迁移将在第一个请求时在prod上运行。