diff options
Diffstat (limited to 'makima/migrations/20241224000000_add_file_version.sql')
| -rw-r--r-- | makima/migrations/20241224000000_add_file_version.sql | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/makima/migrations/20241224000000_add_file_version.sql b/makima/migrations/20241224000000_add_file_version.sql new file mode 100644 index 0000000..1505983 --- /dev/null +++ b/makima/migrations/20241224000000_add_file_version.sql @@ -0,0 +1,17 @@ +-- Add version column for optimistic locking +ALTER TABLE files ADD COLUMN version INTEGER NOT NULL DEFAULT 1; + +-- Create trigger function to increment version on update +CREATE OR REPLACE FUNCTION increment_file_version() +RETURNS TRIGGER AS $$ +BEGIN + NEW.version = OLD.version + 1; + RETURN NEW; +END; +$$ language 'plpgsql'; + +-- Create trigger that fires before each update +CREATE TRIGGER increment_files_version + BEFORE UPDATE ON files + FOR EACH ROW + EXECUTE FUNCTION increment_file_version(); |
