1

我需要创建一个新的 Orchard 项目以在团队中工作,但我发现自己迷失了方向。我现在的主要问题是:

  1. 如何根据部署环境(本地、开发、生产)拥有三种不同的 SQL 连接字符串
  2. 一旦我们在本地获得了我们满意的内容定义和内容,我们如何将其迁移到开发或生产中?你如何控制数据库的版本
  3. 这是一条好路吗?:我们愿意使用 VisualStudio 而不是 WebMatrix,因为最终我们将不得不创建自己的模块,并且 Lombiq 的所有教程都使用 VS。我创建了一个名为 Orchard.SourceCode 的分支,其中包含 1.9.1-v 源代码和一个 Development 分支。每次 Orchard 有新版本时,我都会用新版本代码替换 Orchard.SourceCode 中的文件,提交并合并到 Development。

我已经用谷歌搜索了,但如果你发现我可能错过了一些非常有用的链接,请不要犹豫分享。

注意:我们使用 Mercurial 作为 CVS

4

3 回答 3

2
  1. 您应该在每台机器上(本地、生产、开发 1、开发 2)在这些文件夹中拥有自己的文件 Orchard.Web\App_Data\Sites、Orchard.Web\App_Data\RecipeQueue、Orchard.Web\App_Data\Logs、src\Orchard.Web \Media\ 所以这些文件夹不应该在存储库中。因为正如@NetWave 解释的那样,连接字符串和其他本地数据都在那里。

  2. 建议是,尽管您可以使用 Import-Export 功能来导入导出配方。另一种选择是使用迁移机制Orchard Data Access Layer。关键是,如果您不需要在 db 中为您的自定义部件添加或更改表,您应该使用配方。在我们的例子中,我们有一个模块和一个名为 upgrade-recipe.xml 的配方。在那里,我们添加了所有新内容以添加到下一次升级中。执行升级时,我们会清理该文件。它帮助我们保持我们的迁移文件很小。事实上,对于删除内容项或某个类型的所有内容项等操作,我们创建了也可以从配方中执行的命令。

  3. 对我来说,这个配置没问题。我喜欢将代码放在存储库中,因为有时我修复了 Orchard 错误,我等不及他们接受我的拉取请求。也许您可以使用 Orchard 的源代码作为原始存储库的分支来改进它。这将使您更容易向他们发送拉取请求。

于 2015-08-27T13:37:05.683 回答
1

可以在 App_Data\Sites\Default\Settings.txt 中找到连接字符串。

我们总是使用 Orchard 的完整源代码在 Visual Studio 中开发新站点。与 Ramon 不同,我们将完整的解决方案存储在 TFS 中。因此,每个站点都有完整源代码的单独副本。有些是 1.8.x,有些是 1.9.x,等等……存储很便宜,对吧?;)

拥有一个源代码和一个开发分支是我过去也做过的事情。将源代码更改应用到您的开发分支很容易。当 1.9 分支仍在开发中时(1.x),我已经为它完成了此操作,但我想使用新的布局功能。但大多数时候,当我们启动一个新站点(例如 1.9.1)时,会选择一个稳定的 Orchard 版本,并且源代码几乎没有更新(只有小错误修复)。

关于数据库...第一次将站点放入 preprod 时,我们只需复制整个数据库。之后,迁移是保持类型同步的最常用方法。导入/导出可用于保持数据同步(但这是我们几乎不使用的东西)。

我希望这有帮助。

于 2015-08-26T21:12:45.017 回答
1

我总是这样做:

  1. Orchard 源代码使用 Visual Studio 在本地开发我自己的模块。

  2. 我的测试环境的 Azure Orchard 网站。

  3. 可以使用导出/导入模块将内容类型的定义从您的测试环境导出到生产环境。或者,您可以通过自己模块中的迁移文件创建自己的内容类型定义。

我不会在您的源代码管理中包含 Orchard 源代码的整个解决方案,而是只包含您正在开发的模块。将 Orchard 更新到新版本后,创建一个新环境。

我希望这有帮助。

问候

于 2015-08-26T18:04:49.123 回答