就像对源代码使用版本控制一样,您应该对数据库架构使用版本控制,特别是当您打算为应用程序提供更新功能时。有一些工具可以帮助您,但我更喜欢使用XML文件和SQL命令手动更新模式修订或降级,如下所示:
<Revision Id="3">
<Up>
<SqlCommand>CREATE TABLE [Category] ( [Id] BigInt Primary Key, [Name] nvarchar(255) )</SqlCommand>
<SqlCommand>ALTER TABLE [Group] ADD CanRead bigint NULL</SqlCommand>
<SqlCommand>UPDATE [SysValue] SET [Value] = '3' WHERE [Name] = 'Revision'</SqlCommand>
</Up>
<Down>
<SqlCommand>DELETE TABLE [Category]</SqlCommand>
<SqlCommand>ALTER TABLE [Group] DROP COLUMN [CanRead]</SqlCommand>
<SqlCommand>UPDATE [SysValue] SET [Value] = '2' WHERE [Name] = 'Revision'</SqlCommand>
</Down>
</Revision>