我终于在我的解决方案确实是真实需要它的构建步骤一切的地步:
- 下载
NuGet
包。 - 部署数据库(只有当它现在还没有)。
- 生成解决方案。
- 运行任何升级脚本(只需一次,数据库会跟踪这些)。
- 运行单元测试。
- 成功。
这个工程在当地的各种奇观。
现在,我想我会结合我的GitHub与库AppHarbor ,因为CI对我来说是一个合乎逻辑的步骤。
问题是,该数据库正在建立分为两个步骤:
- 甲
dbproj
构建,产生.dbschema
- 我的数据库升级程序(体育及其所有DbUp迷死)构建,具有
BeforeBuild
目标,其构建并部署dbproj
和AfterBuild
目标,其自执行数据库升级程序,更新与那些尚未运行任何SQL脚本架构。
问题是AppHarbor构建服务器失败的.dbproj
项目,因为需要SqlTasks.target
在他们的服务器配置中缺少。
我想速战速决手动添加目标(与它依赖于一些其他目标一起),而产生的错误,我不能让过去:
该“SqlBuildTask”任务无法从组件Microsoft.Data.Schema.Tasks.Sql装[...]
挖了一下,我发现显然你不能建立.dbproj
对环境的项目不具有任何VS
也不TFS
安装它们。
我应该怎么做? 我可能有几种选择:
手动连接到数据库AppHarbor并运行在我对新的生产数据库的开发环境中生成的部署脚本。
这一种的失败一步到位建设的目的。而不是使用的
.dbproj
数据库项目,只包括在所有基本安装表DbUp “升级程序”。 这有两个问题,虽然他们可能可以解决。 第一个是,我应该由我自己来创建数据库,第二个是,log4net
我使用登录数据库升级进程表将由进程本身,这是各种错误的,我的书被创建。使用一些自定义的数据库项目的解决方案,我可以没有这个问题,部署数据库。
我真的不知道任何像这样的解决方案,做任何存在,他们是可靠的?
意见,部署物品,或任何建议,欢迎,一个快速的黑客攻击,使.dbproj建立在AppHarbor也就够了。
最后,是不是太牵强问AppHarbor包括TFS
和/或VS
在他们构建服务器,构建.dbproj
项目听起来很合理的构建服务器做的,对不对?