Добро пожаловать, Гость ( Вход | Регистрация )



Часовой пояс: UTC + 6 часов



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Поиск документа в БД
СообщениеДобавлено: 21 окт 2015, 12:30 
Аватар пользователя

Зарегистрирован: 30 окт 2014, 17:29
Сообщений: 168

Не в сети
Добрый день.
Возникла потребность сжулить в системе. Необходимо подменить даты согласования в существующем документе
Логика подсказывает простой путь: найти документ в БД и руками проставить нужные даты, но вот беда, где в БД хранятся документы?
Также необходимо исправить лог "ход работы"
Подскажите направление. Или, быть может, существуют ещё какие-то пути решения такой задачи?

Заранее большое спасибо!


 Профиль  
 
 Заголовок сообщения: Re: Поиск документа в БД
СообщениеДобавлено: 21 окт 2015, 19:03 

Зарегистрирован: 31 мар 2015, 18:34
Сообщений: 38

Не в сети
лично я к БД подключаюсь с помощью pgAdmin III
полный путь:
detrix-схемы-manuscript-таблицы
сами документы начинаются с префикса wf_documents


 Профиль  
 
 Заголовок сообщения: Re: Поиск документа в БД
СообщениеДобавлено: 21 окт 2015, 19:29 
Аватар пользователя

Зарегистрирован: 30 окт 2014, 17:29
Сообщений: 168

Не в сети
geosys, спасибо
сегодня полдня убил на решение это проблемы.
тоже добрался до таблиц, начинающихся с wf_documents

но вот беда. есть таблица wf_documents_cfa7a0a7c5
В ней данные о моём доке. Но при попытке их изменить такая вот херь выскакивает



 Профиль  
 
 Заголовок сообщения: Re: Поиск документа в БД
СообщениеДобавлено: 22 окт 2015, 14:54 
Аватар пользователя

Зарегистрирован: 30 окт 2014, 17:29
Сообщений: 168

Не в сети
Есть некое продвижение.
Таблица wf_documents_cfa7a0a7c5 содержит в себе инфу о версиях документа.
Текущий документ весь лежит в wf_documents
Вся инфа о процессе согласования в поле log
Остаётся непонятным одно, как изменить там таймштампы.
Всё хнанится в хрен пойми каком формате.
При внесении любой некорректной информации вся инфа из документа пропадает.
И даже при восстановлении текста поля уже не восстанавливается.
Благо у меня виртуалка и снапшоты

Уважаемый админ, ну подскажите, пожалуйста, как красиво выйти из ситуации ничего не сломав?


 Профиль  
 
 Заголовок сообщения: Re: Поиск документа в БД
СообщениеДобавлено: 23 окт 2015, 12:21 
Аватар пользователя

Зарегистрирован: 30 окт 2014, 17:29
Сообщений: 168

Не в сети
итак, мои мытарства привели меня к следующему.
Лог документа лежит в wf_documents в поле log.
Даты хранятся в unix-формате, т.е. отсчёт в миллисекундах от 1 января 1970.
Если хотим, чтобы наш документ отправился в путешествие во времени, нам необходимо уменьшить это число.
Сказано - сделано. Теперь в логе процедура согласования отправилась из октября в август.
Остался последний вопрос. Как изменить даты в не в логе, а в самих решениях?
Где хранится эта информация в БД?
Уважаемый админ. Я почти у цели. Помогите сделать последний шаг


 Профиль  
 
 Заголовок сообщения: Re: Поиск документа в БД
СообщениеДобавлено: 23 окт 2015, 13:19 
Аватар пользователя

Зарегистрирован: 30 окт 2014, 17:29
Сообщений: 168

Не в сети
разобрался и с этим. в решениях даты подгружаются из лог.
Нужно просто переместить документ на любую другую точку маршрута и вернуть назад - и вуаля, путешествия во времени возможны.
Осталась последняя проблема. Изменить информацию в полях Дата создания и Дата изменения
Нашёл родственную тему viewtopic.php?f=8&t=9102
Нашёл поля created_at и modified_at в нужной таблице
Но, как я и писал выше изменения в полях не сохраняются? выскакивает та же ошибка


 Профиль  
 
 Заголовок сообщения: Re: Поиск документа в БД
СообщениеДобавлено: 23 окт 2015, 17:27 
Аватар пользователя

Зарегистрирован: 30 окт 2014, 17:29
Сообщений: 168

Не в сети
Добил тему самостоятельно.
Правке таблицы wf_documents_[extname] препятствует соответствующая ей триггерная функция.
Она запускается каждый раз при внесении изменений в wf_documents_[extname].
Судя по всему, когда изменения вносятся в БД через систему, передаются ещё какие-то аргументы, позволяющие функции отработать корректно, а при ковырянии напряму - нет
Поэтому необходимо эту функцию на время сломать. Для этого находим эту функцию. Её название folder_associate_[extname], где [extname] соответствует [extname] в названии таблицы
Открываем код функции и копируем его куда-нибудь. Затем приводим её к виду:

BEGIN
RETURN NULL;
END;

После этого возвращаемся в wf_documents_[extname] и правим всё, что нам необходимо
Затем возвращаем функцию к изначальному виду


 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 6 часов


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron