Базы данных SVN и Visual Foxpro - PullRequest
1 голос
/ 06 августа 2009

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

Ответы [ 3 ]

4 голосов
/ 06 августа 2009

Christof Wollenhaupt имеет инструмент под названием «TwoFox», который хорошо выполняет конвертацию DBC и других исходных файлов Fox в XML - статья, описывающая это http://www.foxpert.com/docs/cvs.en.htm. Если вы просто спрашиваете об отбрасывании DBF-файлов однако в SVN вы можете импортировать их как двоичные файлы и потерять возможность сравнивать / объединять версии или использовать CURSORTOXML (это было в 7, не так ли?) для преобразования DBF-файлов в XML перед их проверкой.

2 голосов
/ 06 августа 2009

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

Существует два основных подхода к этому:

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

Моя настройка:



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

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

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

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

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

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

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

...