Программа, над которой я работаю, имеет несколько шейп-файлов с довольно большим количеством атрибутов. На данный момент они хранятся в нашем контроле версий (Subversion) в виде сжатых BLOB-объектов (dbf.gz, shp.gz и shx.gz). Это то, как они используются программой, но это крайне неудобно для управления версиями. Мы не получаем информации об изменениях записей или атрибутов - просто что-то где-то в файле изменилось. Нет полезных различий.
DBF имеет атрибуты. Я думал, может быть, мы могли бы сохранить его как CSV, а затем как часть процесса сборки преобразовать его в DBF и сделать ??? (будет определено), чтобы сделать его действительным шейп-файлом, а затем создайте сжатую версию, как она используется в настоящее время.
Другой подход может заключаться в том, чтобы удалить почти все атрибуты из шейп-файла, сохранить их в CSV / YAML / что угодно (что может быть красиво оформлено), и либо искать их по идентификаторам формы, либо пытаться прикрепить их к нашим объектам после того, как они были созданы из шейп-файлов, что-то вроде этого.
Но, возможно, у людей с большим опытом работы с шейп-файлами есть лучшие идеи?