diff --git a/src/Core/Vault/Entities/CipherArchive.cs b/src/Core/Vault/Entities/CipherArchive.cs index e3cd339824..692ef43180 100644 --- a/src/Core/Vault/Entities/CipherArchive.cs +++ b/src/Core/Vault/Entities/CipherArchive.cs @@ -1,4 +1,4 @@ -#nullable disable +using Bit.Core.Entities; namespace Bit.Core.Vault.Entities; @@ -8,5 +8,6 @@ public class CipherArchive public Guid UserId { get; set; } public DateTime ArchivedDate { get; set; } - public Cipher Cipher { get; set; } + public Cipher? Cipher { get; set; } + public User? User { get; set; } } diff --git a/src/Infrastructure.EntityFramework/Vault/Models/CipherArchive.cs b/src/Infrastructure.EntityFramework/Vault/Models/CipherArchive.cs index 5654a344e2..ce04d28c34 100644 --- a/src/Infrastructure.EntityFramework/Vault/Models/CipherArchive.cs +++ b/src/Infrastructure.EntityFramework/Vault/Models/CipherArchive.cs @@ -1,6 +1,4 @@ -#nullable disable - -using Bit.Infrastructure.EntityFramework.Models; +using Bit.Infrastructure.EntityFramework.Models; namespace Bit.Infrastructure.EntityFramework.Vault.Models; @@ -9,6 +7,6 @@ public class CipherArchive public Guid CipherId { get; set; } public Guid UserId { get; set; } public DateTime ArchivedDate { get; set; } - public Cipher Cipher { get; set; } - public User User { get; set; } + public Cipher? Cipher { get; set; } + public User? User { get; set; } } diff --git a/src/Sql/dbo/Vault/Tables/CipherArchive.sql b/src/Sql/dbo/Vault/Tables/CipherArchive.sql index d4a50f3520..aa41f224c2 100644 --- a/src/Sql/dbo/Vault/Tables/CipherArchive.sql +++ b/src/Sql/dbo/Vault/Tables/CipherArchive.sql @@ -1,55 +1,27 @@ -IF OBJECT_ID(N'[dbo].[CipherArchive]', N'U') IS NULL -BEGIN - CREATE TABLE [dbo].[CipherArchive] - ( - [CipherId] UNIQUEIDENTIFIER NOT NULL, - [UserId] UNIQUEIDENTIFIER NOT NULL, - [ArchivedDate] DATETIME2(7) NOT NULL, - - CONSTRAINT [PK_CipherArchive] - PRIMARY KEY CLUSTERED ([CipherId], [UserId]) - ); -END; +CREATE TABLE [dbo].[CipherArchive] +( + [CipherId] UNIQUEIDENTIFIER NOT NULL, + [UserId] UNIQUEIDENTIFIER NOT NULL, + [ArchivedDate] DATETIME2(7) NOT NULL, + CONSTRAINT [PK_CipherArchive] + PRIMARY KEY CLUSTERED ([CipherId], [UserId]) +); GO -IF NOT EXISTS ( - SELECT 1 - FROM sys.foreign_keys - WHERE name = N'FK_CipherArchive_Cipher' - AND parent_object_id = OBJECT_ID(N'[dbo].[CipherArchive]', N'U') -) -BEGIN - ALTER TABLE [dbo].[CipherArchive] - ADD CONSTRAINT [FK_CipherArchive_Cipher] - FOREIGN KEY ([CipherId]) - REFERENCES [dbo].[Cipher]([Id]) - ON DELETE CASCADE; -END; +ALTER TABLE [dbo].[CipherArchive] +ADD CONSTRAINT [FK_CipherArchive_Cipher] + FOREIGN KEY ([CipherId]) + REFERENCES [dbo].[Cipher]([Id]) + ON DELETE CASCADE; GO -IF NOT EXISTS ( - SELECT 1 - FROM sys.foreign_keys - WHERE name = N'FK_CipherArchive_User' - AND parent_object_id = OBJECT_ID(N'[dbo].[CipherArchive]', N'U') -) -BEGIN - ALTER TABLE [dbo].[CipherArchive] - ADD CONSTRAINT [FK_CipherArchive_User] - FOREIGN KEY ([UserId]) - REFERENCES [dbo].[User]([Id]) - ON DELETE CASCADE; -END; +ALTER TABLE [dbo].[CipherArchive] +ADD CONSTRAINT [FK_CipherArchive_User] + FOREIGN KEY ([UserId]) + REFERENCES [dbo].[User]([Id]) + ON DELETE CASCADE; GO -IF NOT EXISTS ( - SELECT 1 - FROM sys.indexes - WHERE name = N'IX_CipherArchive_UserId' - AND object_id = OBJECT_ID(N'[dbo].[CipherArchive]', N'U') -) -BEGIN - CREATE NONCLUSTERED INDEX [IX_CipherArchive_UserId] - ON [dbo].[CipherArchive]([UserId]); -END; +CREATE NONCLUSTERED INDEX [IX_CipherArchive_UserId] + ON [dbo].[CipherArchive]([UserId]); GO diff --git a/util/Migrator/DbScripts/2025-11-13_00_AddCipherArchive.sql b/util/Migrator/DbScripts/2025-11-13_00_AddCipherArchive.sql index 39facbcc57..d4a50f3520 100644 --- a/util/Migrator/DbScripts/2025-11-13_00_AddCipherArchive.sql +++ b/util/Migrator/DbScripts/2025-11-13_00_AddCipherArchive.sql @@ -42,7 +42,6 @@ BEGIN END; GO --- Optional index for queries by user IF NOT EXISTS ( SELECT 1 FROM sys.indexes