问题标签 [dbup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1162 浏览

c# - 当单个升级脚本在 DbUp 中失败时执行某些操作

鉴于我们已将 DbUp 设置为查看我们的本地文件系统设置如下

是否有处理单个升级脚本文件中的错误的处理程序或机制?我目前的情况是有人编写了一个错误的脚本文件(稍后在后续脚本中修复),如果出现错误需要忽略。

我在文档中找不到任何可以添加某种逻辑的地方(不仅仅是)继续出错,而是尝试添加一些聪明的方法来解决是否可以跳过脚本,因为它写得不好(例如创建表而不检查如果它已经存在)。

0 投票
1 回答
183 浏览

readyroll - 使用数据库部署工具进行并发功能开发

我正在寻找一种特定的策略/约定,该策略/约定适用于功能分支和数据库部署工具(如 DbUp、DbDeploy、ReadyRoll 等)的并发开发。

我们为并发项目开发运行多个功能分支。

在此处输入图像描述

每个分支机构都有一个专门的开发、QA 和 UAT 环境,通过 Octopus deploy 进行部署。

我正在尝试使用 Octopus 处理自动数据库部署,该工具将处理每个分支中应用的更改。

数据库更改将发生在所有分支(包括发布分支)中。

到目前为止,我看到的大多数工具都使用基于序列的脚本方法,这些脚本被检入 VCS 并由该工具部署。该工具在大多数情况下以文件名升序应用脚本,并且我见过的大多数都指定遵循 1、2、3 等方法。

这适用于一个分支。

我的问题将是当功能 A 有 1 并且功能 B 有 1 时 - 两者都被合并到主分支中。我现在有两个 #1 脚本。让它变得更有趣——我们的生产路径是再合并一次,它也可能有一个 1。所以现在我们有 3 个 #1 脚本。

还有向后合并的问题。一旦项目完成 - 将发布分支合并回主分支,然后再次合并到功能分支以将其重置为下一个项目。在这种情况下 - 我有两个额外的 #1 脚本尚未应用于目标功能分支数据库。

我对此的最初解决方案是使用儒略日期作为检入源的 sql 文件名的前导前缀。我还在考虑将分支名称与工作项一起应用于文件。因此 sql 文件将遵循 {XXXXX_Y_ZZZZZZ.sql} 的约定,其中 xxxxx 是朱利安日期,y 是分支,zzzzzz 是来自 TFS 的工作项。

我正在寻找这个问题的具体解决方案。有没有其他人解决了这个问题?你做了什么?有什么缺点?你用了什么工具?

0 投票
0 回答
54 浏览

c# - 必须定义插入中的 Xml 导致“?xml”的致命错误

在运行名为 DbUp 的第 3 方 NuGet 包时

我收到以下错误:

我知道这里有什么问题,但我无法逃脱“?” 无论我做什么,都要标记。

0 投票
0 回答
360 浏览

asp.net-core - dbup dotnet 核心支持问题

我试图从 nuget 为我的 asp.net core 1.1 项目获取 dbup

Install-Package dbup-mysql -Version 3.3.5

并以这个问题告终。

安装包:包 dbup-mysql 3.3.5 与 netcoreapp1.1 (.NETCoreApp,Version=v1.1) 不兼容。包 dbup-mysql 3.3.5 支持:net35 (.NETFramework,Version=v3.5) At line:1 char:1 + Install-Package dbup-mysql -Version 3.3.5 + ~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException ,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand 安装包:包 dbup 3.3.5 与 netcoreapp1.1 (.NETCoreApp,Version=v1.1) 不兼容。包 dbup 3.3.5 支持:net35 (.NETFramework,Version=v3.5) At line:1 char:1 + Install-Package dbup-mysql -Version 3.3.5 + ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], 异常 + FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand 安装包:包还原失败。回滚“门户”的包更改。在 line:1 char:1 + Install-Package dbup-mysql -Version 3.3.5 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

dbup 还不支持 dotnet core 吗?

0 投票
2 回答
4129 浏览

c# - 使用 DbUp 的实体框架代码优先

我正在考虑将Entity Framework 6 Code First数据库交互与DbUp数据库模式更新一起使用。问题是我不想使用EF迁移是有原因的。所以,我已经达到的工作流程是:

  1. 更改模型(添加POCO、更改属性等)
  2. Add-Migration temp_file进去Visual Studio Package Manager Console
  3. Update-Database -Script进去Visual Studio Package Manager Console
  4. 抓取生成的sql脚本,包括在表中插入新行__MigrationHistory
  5. 创建一个新.sql文件并过去生成的脚本
  6. 删除temp_file
  7. 运行 DbUp

temp_file它在本地和生产服务器上完美运行,但是每次生成新迁移时我都对添加然后删除感到不舒服(我希望有一种方法可以永久停止temp_file添加到解决方案中。)。

所以问题: 有没有更好的方法来DbUp使用 using进行数据库迁移Entity Framework

0 投票
1 回答
566 浏览

sql-server - 有人可以为我提供 dbUP 迁移的 powershell 示例吗?

我已经为.net core 2.0 中的数据库迁移制作了一个控制台应用程序。它运行完美,但现在我想在 jenkins 中使用 CI/CD 进行迁移。有人可以指导我。如果可能的话,powershell 运行 .net 核心控制台应用程序的例子会很棒。

0 投票
1 回答
2303 浏览

c# - C# + DockerCompose - 在尝试连接之前等待 MS SQL Server Docker 容器启动

我正在尝试为我的微服务创建集成测试,类似于Spotify 的方法

我仍在研究如何启动和播种数据库。目前我有一个带有FluentDocker v2.2.15 和DbUp 4.1.0 的 .NET Core 2.0 项目。

我使用 FluentDocker 调用 DockerCompose 并启动我的服务,包括SQL Server 容器

然后我使用 DbUp 运行我的脚本并为数据库播种。

当我给 SQL Server 足够的时间来启动它时,例如在调试时,我可以成功运行它。但是,如果我全速运行它,那么 DbUp 会在它尚未准备好时尝试连接到 SQL Server。FluentDocker 有一个WaitForPort方法,但它似乎不适用于 DockerCompose API。

我想知道是否有办法在运行脚本之前等待 SQL Server 的端口 1433 响应(不包括非确定性策略,例如await Task.Delay),或者是否有其他库允许我进行这种控制。

谢谢

0 投票
0 回答
136 浏览

c# - 在并发环境中使用 dbup

我们有多个二进制文件/进程引用相同的后端数据库进行负载平衡,浏览了文档,但没有找到有关在并发环境中更新数据库的任何最佳实践的太多信息。

有没有人在生产环境中遇到过这样的问题?

0 投票
2 回答
899 浏览

octopus-deploy - 如何在八达通服务器上运行与脚本任务步骤相同的“部署包步骤”

我们使用章鱼部署作为持续交付。我们已经在章鱼“部署包步骤”上设置了所有与 Web 相关的配置,我们将 nuget 包部署到章鱼服务器,然后将应用程序部署到多个服务器节点。

现在我们计划在章鱼服务器上使用 DBUP 实现数据库自动化。我们正在创建一个 nuget 包并使用“Deploy.ps1”,其中包含 power shell 命令来在服务器上执行控制台 exe 应用程序。

我们正在使用“部署包步骤”,因为我们不想在数据库服务器上安装触手,我们想使用已经为我们的 Web 应用程序配置的相同连接字符串。我们刚刚创建了具有 DDL 访问权限的 DB 用户(Create,Alter..)。

至于我们的 Web 环境,我们在环境中有多个 VM,因此我们不想在多个环境中执行脚本。

在章鱼上使用“部署包”步骤,我们没有得到任何选项,我们可以配置在章鱼服务器上执行包。

请分享您的想法。

0 投票
1 回答
496 浏览

dbup - 使用 DbUp 执行 C#(过程)迁移

使用DbUp,是否可以在 C#(而不是 SQL)中编写程序迁移?

我意识到 DbUp 的一般理念是在 SQL 中完成所有工作,但在某些情况下 C# 可能是更好的工作工具。

例如,假设您将序列化的二进制 blob 存储在数据库中(忽略这是否是一个好主意)并且您想要更改这些 blob 的结构。您的应用程序代码具有反序列化/序列化这些 blob 的专有技术。通过 SQL可以做到这一点,但通过 C# 做到这一点会更简单。

有没有办法做到这一点(除了IScript)?基本上我正在寻找一种机制

  • 允许在事务上下文中对数据库发出任意命令
  • 如果事务成功完成,则将该“迁移”记录为已完成

IScript似乎是最接近的东西 - 想知道是否有更好的东西。