Поздний ответ, но я подумал, что вас это может заинтересовать.
Я работаю над нашей системой Cobol более 20 лет, и мы неоднократно сталкивались с этой проблемой.
Изменения в структуре наших индексных файлов - это то, что мы считаем «Основным выпуском». Это требует специальных программ преобразования, которые:
- Переименуйте физический файл, переместив его в сторону «старого» файла
- Открыть «старую» версию файла (используя версию тетради до изменения)
- Открыть (создать) «новую» версию файла
- Переместить содержимое каждой из «старых» записей в «новую» запись и ЗАПИСАТЬ ее
Конечно, для этих преобразований требуется, чтобы система была отключена, и поэтому они считаются основными выпусками.
Если у вас есть файлы, в которые, вероятно, будут добавлены поля в будущем, вы можете добавить дополнительный FILLER в конец индексного файла, чтобы вы могли справиться с добавлением новых полей. Мы склонны добавлять FILLER 50 или 100. Конечно, это не поможет вам, если вы измените одно из существующих полей или даже структуру любого из ключей.