我有一个相当大的数据库项目,其中包含九个数据库和一个具有相当大模式的数据库。
这个项目需要大量时间来构建,我正要拔掉头发。我们希望控制我们的数据库源代码,但很难让其他开发人员在签入之前使用该项目并构建数据库项目,因为构建需要很长时间。
这严重削弱了我们的工作,所以我正在寻找替代方案。也许可以用 Redgate 的 SQL 比较来做些什么?我认为这里唯一的缺点可能是它不验证语法?任何人的想法/建议将不胜感激。
我有一个相当大的数据库项目,其中包含九个数据库和一个具有相当大模式的数据库。
这个项目需要大量时间来构建,我正要拔掉头发。我们希望控制我们的数据库源代码,但很难让其他开发人员在签入之前使用该项目并构建数据库项目,因为构建需要很长时间。
这严重削弱了我们的工作,所以我正在寻找替代方案。也许可以用 Redgate 的 SQL 比较来做些什么?我认为这里唯一的缺点可能是它不验证语法?任何人的想法/建议将不胜感激。
请考虑尝试使用 SQL 源代码控制,这是一款旨在与 SQL 比较一起作为数据库开发生命周期的一部分的产品。它目前处于 Beta 版中,但功能齐全,并且非常接近其完整版本。
http://www.red-gate.com/products/SQL_Source_Control/index.htm
我们很想知道与 Visual Studio 构建当前数据库项目所需的时间相比,它在提交时的表现如何。你真的需要在 VS 中如此频繁地构建项目以至于这是一个问题吗?您的架构有多大,平均构建多长时间?
保持 Dev/live db 同步:
可能有很多方法可以做到这一点,我相信其他用户会进一步扩展(包括软件解决方案)。
就我而言,我使用了两种方法:
(a) 运行脚本以获取数据库之间的差异(存储过程、表、字段等)
(b)严格记录数据库更改(不是数据更改)
就我而言,随着时间的推移,我已经建立了一个半结构化的日志:
Client_Details [Alter][Table][New Field]
{
EnforcePasswordChange;
}
Users [Alter][Table][New Field]
{
PasswordLastUpdated;
}
P_User_GetUserPasswordEnforcement [New][Stored Procedure]
P_User_UpdateNewPassword [New][Stored Procedure]
P_User_GetCurrentPassword [New][Stored Procedure]
P_Doc_BulkDeArchive [New][Stored Procedure]
忽略标签,降价把它搞砸了。
但是你得到了一般的要点。
我发现 99% 的时间日志都是我所需要的。