-- Remove default owner_id values from tables -- This should be done after application code is updated to always provide owner_id -- IMPORTANT: Only apply this migration after updating all code to provide owner_id -- Otherwise, inserts will fail -- Remove default values (they are no longer needed since code provides owner_id) ALTER TABLE files ALTER COLUMN owner_id DROP DEFAULT; ALTER TABLE tasks ALTER COLUMN owner_id DROP DEFAULT; ALTER TABLE daemons ALTER COLUMN owner_id DROP DEFAULT; ALTER TABLE mesh_chat_conversations ALTER COLUMN owner_id DROP DEFAULT; -- Make owner_id NOT NULL explicit (should already be, but ensure) -- Note: These columns were created with NOT NULL, so this is a no-op validation -- The SET NOT NULL will succeed if all existing rows have non-null values -- Files already has NOT NULL in original migration (20241222000000) -- Tasks already has NOT NULL in original migration (20250102000000) -- Daemons already has NOT NULL in original migration (20250102000000) -- Mesh chat conversations already has NOT NULL in original migration (20250104000000) -- However, we explicitly restate it for clarity and documentation ALTER TABLE files ALTER COLUMN owner_id SET NOT NULL; ALTER TABLE tasks ALTER COLUMN owner_id SET NOT NULL; ALTER TABLE daemons ALTER COLUMN owner_id SET NOT NULL; ALTER TABLE mesh_chat_conversations ALTER COLUMN owner_id SET NOT NULL; -- Add comments documenting the constraint COMMENT ON COLUMN files.owner_id IS 'Owner ID is required - no default value, must be provided by application'; COMMENT ON COLUMN tasks.owner_id IS 'Owner ID is required - no default value, must be provided by application'; COMMENT ON COLUMN daemons.owner_id IS 'Owner ID is required - no default value, must be provided by application'; COMMENT ON COLUMN mesh_chat_conversations.owner_id IS 'Owner ID is required - no default value, must be provided by application';