问题标签 [dbdeploy]

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 回答
514 浏览

mysql - dbdeploy 错误与 --// 在部署文件

我正在使用 phing 和 dbdeploy 为我的 mysql 数据库生成部署文件。

生成的 dbdeploy 文件的输出如下所示:

问题是 --// 在 ALTER 语句之前。数据库出现错误。如果我删除 --// 孔文件是正确的。

这是我的一段 phing 构建脚本,以便您可以看到我是如何使用 dbdeploy 生成 .sql 文件的:

为什么 dbdeploy 会生成损坏的文件?

感谢您的帮助!

0 投票
2 回答
234 浏览

php - 如何使用数据库重构软件保持重构的顺序?

我一直在尝试使用LiquibaseDBDeploy。我更喜欢 Liquibase,因为它的非 SQL 接口(即我可以只使用 JSON 或 Yaml 变更集)。但是,这两个软件都有一个问题。

Liquibase 工作流程

  1. 我创建了一个主变更日志。它所做的只是includeAll一个文件夹,其中包含带有小变更集的小文件。
  2. 然后我创建变更集,并在它们前面加上一个数字(例如时间戳,或简单的整数,如 1、2 等)。

DBDeploy 工作流程

  1. 我刚开始制作 delta sql 文件,前缀与上面的数字 2 相同。

问题

好吧,这个问题是如此微不足道,我觉得问它很愚蠢,但它就在这里。考虑这种情况:

  1. 我创建了一个分支来处理我的功能,比如向系统添加订单。
  2. 我的同事 Bob 创建了自己的分支来向系统添加产品。
  3. 当需要合并时,不知道谁的变更集或增量 sql 将首先运行。这可能会破坏数据库。

这不会发生在任何人身上吗?如果是这样,在PHP领域解决它的方法是什么?

谢谢。

0 投票
1 回答
181 浏览

function - 无法通过 dbdeploy 为 postgres db 创建触发器

尝试通过 dbdeploy 在 postgres 上创建触发器时出现以下错误。这个问题似乎是一个 postgres jdbc 问题,而不是 dbdeploy。在 sql 块中的第一个分号之后似乎忽略了 sql 语句。感谢您对解决此问题的任何帮助。

sql 字符串(通过 pgAdmin 完美运行):

错误:

0 投票
5 回答
1583 浏览

database - 如何处理来自不同 Git 功能分支的多个 db alter 脚本?

描述起来有点复杂,但我会尽力而为。基本上我们使用的是 Git 工作流程,这意味着我们有以下分支:

  • 生产,这是现场分支。一切都是生产在实时网络环境中运行。
  • 集成,其中集成了所有新功能。这个分支每周都会合并到生产环境中。
  • 一个或多个功能分支,开发人员或开发团队在其中开发新功能。完成此操作后,开发人员将他们的功能分支合并到集成中。

所以,这里没有什么复杂的。但是,由于我们的应用程序是针对 MySQL 数据库运行的 Web 应用程序,因此新功能通常需要更改数据库方案。为了自动化这个,我们使用 dbdeploy,它允许我们创建改变脚本,给定一个数字。例如 00001.sql、00002.sql 等。在合并到集成分支后,dbdeploy 将检查哪些更改脚本的编号高于该特定数据库上最新执行的脚本,并将执行这些脚本。

现在假设如下。- 集成在 00200.sql 之前有更改脚本。所有这些都在集成数据库上执行。- 开发人员 John 有一个功能分支 featureX,它是在集成仍将 00199.sql 作为最高更改脚本时创建的。

由于一些必需的数据库架构更改,John 创建了 00200.sql。

现在,在某个时候,John 会将他的修改合并回集成分支。John 会遇到合并冲突,并且会看到他的 00200.sql 已经存在于集成中。这意味着他需要打开有冲突的文件,提取他的内容,将该文件重置回“我的”(集成中的原始状态)并将他自己的内容放入一个新文件中。

现在,由于我们与十名开发人员合作,我们每天都会遇到这种情况。虽然我们确实了解这背后的原因,但有时非常麻烦。John 重命名他的脚本,对集成进行合并提交,将更改推送到上游,只是看到其他人已经创建了 00201.sql,要求 John 再次执行这些过程。

肯定会有更多的团队使用 Git 工作流程并使用数据库更改管理工具来自动化数据库架构更改吗?

所以,简而言之,我的问题是:

  • 当在不同的功能分支上工作时,如何自动化数据库模式更改,这些分支在同一数据库的不同实例上运行?
  • 如何始终防止合并冲突,同时仍然可以选择在执行的更改脚本中具有固定顺序?例如,00199.sql 必须在 00200.sql 之前执行,因为 00200.sql 可能取决于 00199.sql 中所做的某些事情。

当然,任何其他提示都是最受欢迎的。

0 投票
1 回答
317 浏览

azure - 升级 SQL Azure DB 的最佳实践?

我正在尝试在连续发布方案中升级 Azure DB。该数据库位于 SQL Azure 中,并且其大小不断增长。现在大约> 50G。在我之前的本地部署经验中,我通常以压缩格式备份旧数据库并将其保存到本地文件服务器。如果升级失败,我可以安全地恢复它。

但是对于 SQL Azure,我不确定从 SQL Azure 下载这么大的数据库是否可以。SQL Azure DB 升级方案是否有任何最佳实践?

添加

我找到了这个关于不同 SQL Azure 备份策略的链接。但是,如果有人可以分享一些现场经验,那就太好了。

0 投票
2 回答
322 浏览

sql-server-2012 - 无法在安装了 SQL Server 2012 的 Windows Server 2012 上使用 msbuild 运行 dbdeploy 组件

我正在尝试在安装了 SQL Server 2012 的 Windows Server 2012 上使用 MSBuild 运行 dbdeploy 组件。

在运行 msbuild 脚本时,我收到以下错误:

上面的脚本在我的开发框和安装了 SQL SERVER 2008 R2 的框(Windows Server 2008 R2)上运行良好。一旦我尝试在安装了 SQL SERVER 2012 的新机器上对其进行测试,问题就开始了。

谁能帮我解决这个问题?

0 投票
1 回答
73 浏览

azure-sql-database - 如何管理在 sql azure 上管理的数据库的架构、表、存储过程和其他数据库对象的升级

我已使用 SSMS 将本地数据库迁移到 Azure SQL 数据库。对于表、存储过程等数据库对象所需的任何升级,我将使用 SSMS 连接回 SQL Azure 并手动执行更改脚本。

对于本地数据库,我使用 DbDeploy.net 2 来自动执行 sql 更改。

DbDeploy.net 2 也支持 SQL Azure 数据库。

对于 SQL Azure 数据库,管理 sql 更改部署自动化的最佳方法是什么。

反正有没有在这里利用 VSTS。

谁能帮我解决这个问题?

0 投票
0 回答
304 浏览

oracle11g - dbDeploy.net 使用 powershell 实现 oracle 数据库部署自动化

我正在寻找用于 Oracle 数据库部署自动化的 dbDeploy.net 示例实现。我能够找到 github 资源:https ://github.com/brunomlopes/dbdeploy.net

但是没有提到关于如何使用 powershell 实现它的例子。任何人都可以帮我提供一些有关示例实施的指导。

谢谢,桑托什

0 投票
2 回答
521 浏览

sql-server - 重命名 TFS 中时间表的列名或列数据类型时出现错误

我正在使用 Visual Studio Enterprise 2017(版本:15.71.1)和 SSDT(版本:15.1.61804.210),还使用 ​​TFS 来保存我的代码。在我的数据库项目中,所有表都是临时表。

现在,当我在 TFS 中更改列类型或列名时,我无法构建我的项目,因此无法生成发布脚本。

我收到错误: 错误 SQL71609:系统版本化的当前和历史表没有匹配的架构。不匹配的列:“XXXXXX”

我们对此有什么解决方案吗?

0 投票
2 回答
561 浏览

sql-server - 如何从脚本文件创建 DacPac 以自动化数据库部署?

我需要使用 Azure DevOps 自动化 SQL Server DB 部署。我不想给出任何改变声明。我将在存储库中有一个包含表、存储过程、视图和函数的文件夹结构。每个文件夹将只包含创建脚本。除了使用该文件夹结构的 DacPac 部署之外,是否可以使用该文件夹结构或任何其他方式创建 DacPac 文件?

注意:我不想使用 Visual Studio 创建数据库项目。而且我不想直接从 SQL Server Management Studio 创建 DacPac 文件并将其签入源代码控制。而且我无法支付许可证费用。