Архив чертежей и проектной документации российского проектного института за пятьдесят лет лежал в пяти старых программах, а теперь собран в одну базу PostgreSQL с простым веб-поиском. Перенос сделал Евгений Росляков. Сайты и системы учёта он делает с 2016 года, работает самозанятым по договору и выдаёт юрлицам закрывающие документы. Он в Москве, а клиентов из других регионов принимает удалённо.
Каждая программа жила своей жизнью:
— картотека архива в файлах dBase, ещё с 1990-х, в кодировке DOS;
— программа выдачи документов на FoxPro;
— фотоархив объектов в FileMaker на компьютерах Mac отдела изысканий;
— программа договорного отдела на 4th Dimension;
— система учёта проектов на Informix на Unix-сервере, доставшаяся от головной организации.
Чтобы найти один проект, архивист открывал три программы подряд. Шифр искал в картотеке, сведения о выдаче — в программе на FoxPro, фотографии объекта — на другом компьютере. Люди, писавшие эти программы, давно ушли. Железо старело, и никто не мог гарантировать, что завтра оно включится.
Особенно жалко было бы потерять чертежи: по ним и сейчас ведут реконструкцию старых зданий, и каждая карточка — чья-то работа.
Задача состояла в том, чтобы сохранить накопленное, связать данные между собой и дать сотрудникам одно место для поиска.
Первым делом инвентаризация. Для каждой системы выписал таблицы, поля и связи, выяснил, чем реально пользуются, а что осталось от прежних времён. Это заняло больше времени, чем сама выгрузка.
Потом по каждой системе отдельно. Файлы DBF из dBase и FoxPro читаются напрямую, вместе с memo-полями. Главное здесь — перекодировка: картотека в кодировке DOS, и без неё вместо фамилий получаются иероглифы. Из FileMaker экспортировал записи, а фотографии выгрузил обычными файлами. Таблицы из 4th Dimension вывел в текст. С Informix сработала штатная команда UNLOAD, она сохраняет таблицы в текстовые файлы.
Затем связал карточки архива, договоры, фотографии и сканы между собой по шифрам проектов. Нашлись дубли и разные написания одного объекта. Сомнительные пары сам не склеивал: отдавал списки архивистам, и они решали. Выборки сверяли вместе: архивист называл проект, а мы проверяли, что в новой базе нашлось всё, что было в старых программах.
Итог лёг в единую базу PostgreSQL. К ней сделал простой веб-поиск по шифру, объекту, году и заказчику, без имён и лишних полей. Карточка проекта показывает договор, выдачи, фотографии и сканы на одной странице.
Старые программы оставили в режиме чтения на переходный период. Править там ничего нельзя, зато при сомнениях можно заглянуть и сверить.
Архивисту больше не нужно открывать три программы. Он вводит шифр или название объекта и получает карточку проекта целиком: сведения из картотеки, договор, историю выдач, фотографии. Раньше нужно было помнить, какая программа на каком компьютере стоит.
Данные за пятьдесят лет сохранены в открытом формате. Если институт сменит компьютеры, база и поиск переедут на обычный сервер вместе с ними. От Mac в отделе изысканий и от Unix-сервера головной организации архив больше не зависит.
Часть записей так и осталась неполной. Если в картотеке 1990-х заказчика не было, он не появился: я ничего не придумывал, а помечал такие карточки для ручной доработки. Архивисты дозаполняют их по мере работы, и список таких карточек виден в самой базе.
Старые программы можно отключить, когда сотрудники убедятся, что искомое находится в новой базе. Сроки выбирает сам институт, я их не торопил. Пока в режиме чтения они служат подстраховкой.
Дальше институт хочет загружать новые сканы прямо в карточку проекта. Основа для этого уже есть, потому что сканы с самого начала привязаны к шифрам.
Если ваш архив тоже разбросан по старым программам, пришлите мне на freelance.ru их перечень и примерный объём. Скажу, что из них получится выгрузить и в каком виде.