问题标签 [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 投票
1 回答
391 浏览

sql-server - 在 Docker 上使用 dbup 部署 SQL Server 数据库

在我们公司,我们使用了几种更新数据库模型的方法。我们使用 sqlproj 和 dacpacs 以及使用 DbUp 的 .net 核心应用程序。我已经根据这篇文章automating-sql-server-2019-docker-deployments成功使用 dacpac 进行容器化

现在我正在开发 Db Up。我试图解决一些挑战,但我无法解决它们。

  1. 我的第一个想法是基于 mcr.microsoft.com/mssql/server:2019-latest 生成一个 dockerfile,然后安装 .net 核心运行时并在 sql 容器中运行构建的 dbup。运行 .net 核心运行时一直很困难,我似乎无法让它工作。

  2. 我试图使用 docker-compose 来构建一个规范的 sql 数据库,并使用基本映像 mcr.microsoft.com/dotnet/core/sdk:3.1 AS 构建运行 dbUp 并以这种方式连接到 sql db。这在这里也不起作用是我的 docker-compose.yml 文件(对不起,由于某种原因,我无法在这里正确地复制代码:

版本:“3.7”服务:ms-sql-server:
图像:mcr.microsoft.com/mssql/server:2019-最新端口:-“1477:1433”环境:SA_PASSWORD:“SuperFun!23”ACCEPT_EULA:“Y” dbup-exe:构建:。
依赖:-ms-sql-server

在此处输入图像描述

在我的 Dockerfile 中,我正在调用数据库,但它不会连接到它

我有两个错误

System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问

/bin/sh: 1: 用户: 未找到 /bin/sh: 1: --WithSeedOnce: 未找到

根据我的研究,我虽然在 docker 映像之间使用 docker compose 时可以引用 ms-sql-server 而不是本地主机。同样在执行最后一个命令时如何附加多个参数?似乎没有考虑 --WithSeedOnce 和应用程序的论点

0 投票
0 回答
94 浏览

database-schema - 在多应用环境中使用 DbUp 自动更新数据库

我有多个可以在启动时运行 DbUp 的桌面应用程序。如果几个应用程序同时运行 DbUp,如何处理这种情况?

我必须为此提供自动解决方案,因为有很多客户端并且 DBA 无法运行数据库更新。它必须在应用更新后自动工作(实际上它也是自动的)。数据库更新可以在应用程序更新期间执行。但它也不能解决并发问题,因为应用程序更新也可能同时发生。DbUp 没有任何锁定机制而不是事务。我添加了一些锁表并添加了脚本以在每个更新脚本开始时更新其中的值。但是有一个问题是脚本在其他 DbUp 实例完成工作后继续运行。

如果锁表更新在模式版本读取之前运行,它将起作用。然后在锁表释放后,它会读取 schemaversion 表,然后可以意识到所有更新都已执行。

Application .Net Core 基于和 DB 是 MySql。

0 投票
1 回答
104 浏览

sql - Oracle - 无法更改程序

当 DbUp 执行以下 SQL 脚本时,我收到如下所示的错误:

甲骨文错误代码:1;号码-2147467259;消息:904
Oracle.ManagedDataAccess.Client.OracleException (0x80004005):
ORA-00904:“PAR_INVOICE_ID”:niepoprawny identyfikator

0 投票
1 回答
1176 浏览

c# - 如果不应将 MigrateAsync() 用于生产环境,如何应用 EF Core 迁移?

我创建了一个新的 .Net 5 项目并想使用 EF Core。我使用自动生成多个 migration.cs 文件

dotnet ef migrations add MyMigration

并希望应用它们(用于开发和生产)。我知道该MigrateAsync方法,因此我阅读了有关如何在启动时调用此方法的信息

https://andrewlock.net/running-async-tasks-on-app-startup-in-asp-net-core-part-1/

但是我在任何地方都读到这种方法不应该用于生产,因为这些迁移不会在单个事务中执行(不会回滚错误)。

不幸的是,无论环境如何,关于如何做到这一点的资源并不多,我找到了这篇文章

https://www.thereformedprogrammer.net/handling-entity-framework-core-database-migrations-in-production-part-2

一种选择可能是调用迁移的控制台应用程序

https://www.thereformedprogrammer.net/handling-entity-framework-core-database-migrations-in-production-part-2/#1b-calling-context-database-migrate-via-a-console-app-or -admin 命令

但我无法理解这种方法的区别,因为它没有解决事务问题?

在开发/生产期间应用迁移的最佳实践是什么?

  • 在自动生成迁移之后,我非常喜欢简单性,dotnet ef database update我不需要使用其他工具来完成这项工作吗?

  • 创建一个控制台应用程序,从迁移中生成 .sql 文件,安装 DbUp 并将其用于迁移部分?

0 投票
1 回答
114 浏览

sql-server - 使用 DbUp 库部署用于 SQL Server 数据库的 Azure CICD

我正在尝试使用 DbUp 库通过 Azure CICD 部署数据库更改。但我真的不明白要遵循的步骤是什么,以及如何开始。

有人可以分享我们如何使用 DbUp 部署 SQL Server 数据库更改吗?

0 投票
1 回答
40 浏览

sql - SQL 多个 if 没有在 DbUp 上运行

以下是我的代码

现在发生的事情是它不会创建列(跳过第一个 Id 语句并进入第二个语句并失败Invalid column name 'isDisplayed'

有人可以帮忙吗?

0 投票
0 回答
28 浏览

octopus-deploy - Octopus Deploy:管理 Datapacs 和 DBUp 部署

我有一个使用 Octopus Deploy 的部署过程,并且我有一个关于数据库部署的问题。这可能是一个更一般的数据库部署问题,而不是 Octopus 部署问题。

我们目前使用 DacPacs 部署数据库,然后使用 DBUp 对现有环境进行更改以使其保持最新状态。DacPac 会随着数据库结构的更改而更新,并包含一些数据。DBUp 脚本允许更新实时环境以跟踪对数据库结构和数据的更改。目前,DacPac 和 DBUp 脚本都在同一个 Octopus Deploy 进程中。

我们已经使用 Octopus Deploy 流程来使用 DacPac 创建我们的测试环境和生产环境数据库。然后我们关闭这些步骤并使用 DBUp 脚本使数据库(和数据)保持最新。

问题是我们是否需要稍后从头开始创建一个新环境来进行数据迁移。在这种情况下,我们需要在打开 DacPac 步骤的情况下创建 Octopus Deploy 版本,将版本部署到仅数据迁移环境。然后我们不需要在其他任何地方部署该版本(因为它可能会擦除现有数据库),然后我们需要再次关闭 dacpac 步骤,以便将下一个版本发布到现有环境中。这种方法感觉很hacky,它可能会导致数据库在另一个环境中被错误地擦除。

我开始认为我们应该有两个流程。一个用于创建新数据库(包含表、数据等),另一个用于部署代码和任何数据库更新。这将从主部署脚本中完全删除 DacPac 步骤,并使我们免于关闭和打开步骤(并希望通常降低出错的风险)。

请注意,由于时间压力,我看不到我们在短期内移除 DacPac 并只使用 DBUp 或任何其他重大工程返工。

我只是想知道其他人如何处理这种情况?

0 投票
1 回答
53 浏览

mysql - Azure DevOps 中的数据库部署

我们正在使用 DbUp 迁移任务 ( https://marketplace.visualstudio.com/items?itemName=johanclasson.UpdateDatabaseWithDbUp ) 将 SQL 脚本部署到 Azure DevOps 中的 Microsoft SQL 服务器,当我需要部署到单个数据库,但有人可以帮我如何将这个任务用于同一服务器中的多个数据库或我们可以用于多个数据库的任何其他方法。

DbUp 迁移