Триггер PostgreSQL, который перемещает файл в файловой системе - PullRequest
3 голосов
/ 12 февраля 2012

Я только начинаю работать с триггерами PostgreSQL, и мне интересно, возможно ли следующее: У меня есть таблица, в которой столбец хранит пути файловой системы к файлам изображений. Например, поле «img_path» каждой записи может содержать что-то вроде «c: \ images \ a_great_image.jpg» или что-то в этом роде.

Когда пользователь базы данных изменяет значение в этом поле, возможно ли, что функция триггера postgresql может позаботиться (по крайней мере, попытаться) «переместить» этот файл в его новое указанное местоположение?

Большое спасибо за совет.

1 Ответ

3 голосов
/ 13 февраля 2012

Да.Возможно.Используйте plpython для примера.Используйте это в триггере.

CREATE OR REPLACE FUNCTION  move_file(old_path text, new_path text)
RETURNS boolean AS
$$
    import shutil
    try:
       shutil.move(old_path, new_path)
       return True
    except:
       return False
$$
  LANGUAGE 'plpythonu' VOLATILE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...