持续集成和数据库管理

当与其他几个人一起工作时,通常有几个人有不同的领域,如数据库.

我的挑战是如何让几个人在持续的集成环境中编辑数据库模型.

开发人员建议编写一个“版本控制脚本”,其中每个编辑都输入到.sql脚本中,并具有数据库能够检测到的版本号.该文件中的新增功能将在该文件加上一个版本,并且一旦脚本被提交并且运行了构建,数据库将被更新.

我也听说过发布商/订阅者…并阅读了一下.

您如何在日常工作中管理这种情况,以及您可以提供什么建议,使数据库更改尽可能无缝地运行?

**编辑**

已经提到了迁移框架和迁移脚本.如果你有一些实践经验,并建议一个框架,那也将不胜感激.

解决方法

引用杰夫阿特伍德在优秀的 Get Your Database Under Version Control职位:

I was thinking about this again
because my friend and 07001 K.
Scott Allen just wrote a brilliant
five part series on the philosophy and
practice of database version control:

  1. 07002
  2. 07003
  3. 07004
  4. 07005
  5. 07006

真的,整个系列是值得阅读,即使你们中的很多人似乎是特别感兴趣的第三部分.和BTW,看看第三部分提到的Bulletproof Sql Change Scripts Using INFORMATION_SCHEMA Views文章.您可能已经意识到了,但它解释了为什么写idempotent更改脚本很重要的其他好的做法.

关于工具,您可能需要考虑基于ThoughtWorks软件开发实际经验的UpToDater(以代码为中心),LiquiBase(基于xml)或… dbdeploy的小宝石.这不是第一个不好,但这是我的首选(可用于Java,PHP或.NET).

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...