数据库版本之间的数据迁移
有没有一种首选的方法来处理使用SSDT的数据库版本之间的数据迁移?
我们在SSDT中开发了一个大型数据库项目,使用后期部署脚本将数据插入/合并到数据库。
现在我们正面临处理更新的问题。 我们不能使用合并脚本来更新数据,因为在某些情况下,我们需要操作已经存在的数据,因此必须实现自定义更新脚本。
我已经使用dacpac版本号查看了一个解决方案,并验证哪些更新脚本可以运行,但是我意识到这个解决方案有缺点。
我到目前为止(伪代码):
CREATE Procedure [dbo].[#GetDatabaseVersion](
@DbVersion NVARCHAR(64) OUTPUT)
AS
BEGIN
select @DbVersion = type_version from msdb.dbo.sysdac_instances_internal where instance_name = '$(DatabaseName)'
RETURN
END
DECLARE @DbVersion NVARCHAR(64)
EXEC #GetDatabaseVersion @DbVersion = @DbVersion OUTPUT
IF @DbVersion = '2.4.0.0'
BEGIN
--Do some data manipulation
END
IF @DbVersion = '2.5.0.0'
BEGIN
--Do some more data manipulation
END
上述解决方案的缺点是我不能在IF语句中使用GO语句,我们的一些代码可能需要在语句块中运行脚本。
还有什么办法从SSDT项目中获取“DacVersion”作为命令变量?
链接地址: http://www.djcxy.com/p/62327.html上一篇: Data migrations between database versions
下一篇: What can Entity Framework Migrations do that FluentMigrator cannot?