Graduation_Project-v1.2 / Data /database /create_sync_queue.sql
bat-6's picture
feat: implement database synchronization queue with SQL triggers and a background worker for automated FAISS index rebuilding.
ac751b2
Raw
History Blame Contribute Delete
1.02 kB
-- SQL Server DDL for SyncQueue table
-- Path: D:\GRAD!!!!\Final\Graduation_Project-v1.2\Data\database\create_sync_queue.sql
IF OBJECT_ID('SyncQueue', 'U') IS NULL
BEGIN
CREATE TABLE SyncQueue (
QueueId INT IDENTITY(1,1) PRIMARY KEY,
ProjectId INT NOT NULL,
OperationType VARCHAR(10) NOT NULL,
Processed BIT NOT NULL DEFAULT 0,
CreatedAt DATETIME2 NOT NULL DEFAULT SYSUTCDATETIME(),
ProcessedAt DATETIME2 NULL,
RetryCount INT NOT NULL DEFAULT 0,
ErrorMessage NVARCHAR(MAX) NULL,
CONSTRAINT CHK_SyncQueue_OperationType CHECK (OperationType IN ('UPSERT', 'DELETE'))
);
-- Index to optimize querying of unprocessed items in chronological order
CREATE INDEX IX_SyncQueue_Unprocessed
ON SyncQueue (Processed, CreatedAt)
INCLUDE (ProjectId, OperationType, RetryCount);
PRINT 'SyncQueue table and index IX_SyncQueue_Unprocessed created successfully.';
END
ELSE
BEGIN
PRINT 'SyncQueue table already exists.';
END