修正
This commit is contained in:
30
backend/sql/migration_add_revision_tracking.sql
Normal file
30
backend/sql/migration_add_revision_tracking.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- Migration: Add is_latest and revision tracking columns
|
||||
|
||||
-- 1. 添加新欄位到 journal_entries
|
||||
ALTER TABLE journal_entries
|
||||
ADD COLUMN IF NOT EXISTS is_latest BOOLEAN DEFAULT true,
|
||||
ADD COLUMN IF NOT EXISTS revision_count INTEGER DEFAULT 1,
|
||||
ADD COLUMN IF NOT EXISTS original_entry_id INTEGER REFERENCES journal_entries(journal_entry_id) ON DELETE CASCADE;
|
||||
|
||||
-- 2. 處理現有數據
|
||||
-- 將所有已刪除的交易標記為 is_latest = false
|
||||
UPDATE journal_entries
|
||||
SET is_latest = false
|
||||
WHERE is_deleted = true AND is_latest IS NOT NULL;
|
||||
|
||||
-- 將所有活躍交易標記為 is_latest = true
|
||||
UPDATE journal_entries
|
||||
SET is_latest = true
|
||||
WHERE is_deleted = false AND is_latest IS NULL;
|
||||
|
||||
-- 3. 創建索引以提高查詢性能
|
||||
CREATE INDEX IF NOT EXISTS idx_journal_entries_is_latest
|
||||
ON journal_entries(is_latest, entry_date);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_journal_entries_original_entry_id
|
||||
ON journal_entries(original_entry_id);
|
||||
|
||||
-- 4. 添加註釋說明
|
||||
COMMENT ON COLUMN journal_entries.is_latest IS '是否為最新版本(試算表使用此欄位過濾)';
|
||||
COMMENT ON COLUMN journal_entries.revision_count IS '修正版次(原始=1, 第1次修正=2, ...)';
|
||||
COMMENT ON COLUMN journal_entries.original_entry_id IS '指向原始交易(如果是修正版本)';
|
||||
Reference in New Issue
Block a user