2012-05-09 1 views
2

Хорошо, не строго программирование, но здесь мы идем.Управление версиями как способ сохранить пользователей в актуальном состоянии с важными изменениями данных?

Ситуация. У нас есть 30 + сотрудников, которые используют 2 пакета программного обеспечения, на которые у нас нет полного контроля. ОС - win7.

One (part a) - это сторонний пакет, в котором мы можем внести множество изменений в базу данных доступа .mdb и дерево файлов текстовых файлов.

Другое (часть b) было разработано для нашей материнской компании в виде доступа к нескольким файлам .mdb и десяткам файлов .doc и .xls. Мы можем и можем изменить их (в основном, изменения vba и таблицы)

Обе части изменены или обновляются каждые несколько дней или не реже одного раза в неделю. Когда у нас было 10 сотрудников, это была не большая проблема, но теперь у нас есть 30 +, а материнская компания хочет, чтобы мы продвинулись к 100 сотрудникам.

Я хочу сделать обновления автоматическими, а не ручными (в настоящее время мы обновляем и просим персонал вручную копировать новые файлы поверх старого).

Я подумал о том, чтобы использовать настройку контроля версий и скрипты при запуске входа в Windows. Это было бы легко для дерева текстовых файлов, но для доступа .mdb и документов/расширений?

Нам не нужен контроль версий (но это было бы хорошо для текстового дерева файлов), просто способ обновления только измененных файлов? Это сохранение только самой последней версии двоичных файлов на сервере, а версия управляет текстовыми файлами, но было бы неплохо иметь управляемую версию .doc и xls. Файлы доступа - это инструменты, текст и .doc/xls - это данные, которые нам нужны и используются.

Любая помощь приветствуется,

Благодаря

+0

Предпочитаете с открытым исходным кодом, где возможно – Rob

ответ

1

Вот что я сделал. У меня одинаковое количество пользователей приложения MS Access - и пока оно работает хорошо.

  1. Я создал в своей сети .bat-файл, который является в основном сценарием обновлений для приложения MS Access. Сокращение этого файла .bat выполняется на рабочем столе каждого пользователя.
  2. Я добавил константу в приложение MS Access, чтобы указать, какая версия она есть.
  3. Я добавил запись в таблицу конфигурации, которая указывает, ожидает ли версия базы данных.

Когда приложение MS Access подключается к своей базе данных (это может быть SQL-сервер или общий MDB в сети), первое, что он делает при запуске своей основной формы (в макросе Autoexec), - это сравните номер версии в базе данных с константой в части приложения.

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

Затем, когда я развертываю новую версию, я увеличиваю константу и развертываю скомпилированный MDE в сети в том месте, где ожидает сценарий обновления. Наконец, я увеличиваю константу в базе данных - и мы уходим на гонки.

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

+1

Я добавил чек для этого в мой, потому что, когда я работал как разработчик, я хотел, чтобы он рассказал мне, работал ли я над версией DB, которая была более новой (редкой) или более старой, чем одно приложение было настроено для. Для вашего обычного пользователя более чем достаточно сказать, что их версия не синхронизирована с базой данных, к которой они подключаются. – BIBD

+0

Один из доступных db (один из них а), мы можем изменить данные, но не структуру, как тогда приложение, использующее его, не будет работать. Поэтому нет номеров версий. Также текстовые файлы не могут изменить структуру (только данные) или приложение не запускается. Я подумал о том, чтобы копировать данные при регистрации, но это около 90 МБ, и с 30 сотрудниками, все из которых регистрируются примерно в одно и то же время, это забило бы или бедный сервер. – Rob

+0

Не могли бы вы добавить еще один БД на свой сетевой диск, который вы контролируете и ссылаетесь на него, чтобы вы могли получить номер версии. В равной степени вы всегда можете разместить файл в известном месте на сетевом диске и проверять его содержимое при каждом запуске приложения. Такая же концепция ... вам просто нужно иметь дело с файлами. – BIBD