Вопрос

Кто-нибудь пробовал включать базы данных Visual Foxpro (версия 7) в SVN?Каковы были преимущества / недостатки его включения в?Каков наилучший подход к обработке базы данных VFP в SCM, когда есть строки, которые необходимо включить в систему управления версиями?

Нет правильного решения

Другие советы

У Кристофа Волленхаупта есть инструмент под названием "TwoFox", который отлично справляется с преобразованием DBCS и других исходных файлов Fox в XML - статья, описывающая это http://www.foxpert.com/docs/cvs.en.htm.Однако, если вы просто спрашиваете об удалении файлов DBF в SVN, вы можете импортировать их как двоичные файлы и потерять возможность сравнения / слияния между версиями или использовать CURSORTOXML (это было в 7, не так ли?) для преобразования DBFS в XML перед их загрузкой.

Хотя я не использовал SVN, я использовал VFP как с VSS, так и с Vault.В обоих случаях я вручную добавляю файлы в систему управления версиями, вместо того чтобы пытаться использовать какую-либо форму интеграции в среде разработки.

Есть в основном два способа, которыми вы могли бы подойти к этому:

  1. Просто добавьте вручную .DBC, .DCT, .DCX и все .DBF, .FPT и .CDX
  2. Напишите скрипт из базы данных для создания структуры (я использую модифицированную версию GenDBCX) и создайте скрипт для любых записей данных, которые вы хотите сохранить в программе или классе.

Моя установка:



  • Debian на рабочей станции P4, работающий:
    • Subverison через Apache2
    • Отслеживание с помощью хуков в Subversion
    • регулярные ночные резервные копии как Subversion, так и базы данных Trac

Честно говоря, я не проверяю имеющиеся у нас многомегабайтные базы данных, потому что от одного этого репозиторий увеличился бы примерно до 20 + Гбайт.У нас регулярно есть таблицы объемом 1,6 Гб (и их примечания и индексы), и это просто не стоит потраченных впустую часов ожидания более чем 1 часа фиксации изменений таблицы объемом 20 Гб.Вместо этого мы клонируем данные из нашей производственной системы и используем их для "обновления" данных, а также перестраиваем наш контейнер базы данных, чтобы иметь новые ссылки на таблицы.Процесс "обновления" выполняется примерно раз в месяц и занимает гораздо меньше времени, обычно 40 минут;сравните это с потерей времени впустую каждый день.

У меня ни разу не было необходимости вносить данные в репозиторий.Управление схемой было упрощено за счет следования на данный момент единому правилу:обновляйте данные только после того, как все исправления, предназначенные для производства, будут запущены в производство, что подразумевает, что схема для обеих сред будет согласована.На данный момент мне это сойдет с рук, хотя в будущем это придется изменить...

Если вам просто нужны изменения схемы

Если вы обнаружите, что вам нужно проверить таблицы, потому что вы пытаетесь захватить их схема и не обязательно тот данные они содержат, что вы, возможно, захотите рассмотреть возможность написания небольшого инструмента, который перекачивает схему в текстовый файл и передает его в репозиторий, вместо того чтобы отправлять кухонную раковину на переработку.

Если вам абсолютно необходимо проверить данные

Если в таблицах есть данные, которые имеют решающее значение для управления потоком программы (данные в виде кода, а не только данные, обрабатываемые программой), вы могли бы рассмотреть возможность обрезки ваших данных до необходимого минимума и проверки просто результирующие таблицы-заглушки добавив их вручную в репозиторий.Хотя subversion будет обрабатывать двоичные объекты, вы захотите сохранить их минимальный размер и зафиксировать как можно меньше, чтобы ваше репозиторий не зависал.Убедитесь, что вы проверяете отдельные таблицы, которые вам нужны, а не только все *.dbf, иначе вы можете испытать сильный шок, когда кто-то другой попытается поместить несколько гигабайт данных в ваше репозиторий, потому что рабочая копия не маскирует все таблицы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top