Data Migration Master — это инструмент, который я создал с помощью FileMaker Pro для

  • Упростите процесс переноса данных 1:1
  • Повышение точности и надежности сценариев миграции
  • улучшить отчеты об ошибках при миграции
  • Стандартизируйте формат, который мы используем для наших сценариев миграции

Почему миграция данных обычно проблематична?

В отличие от многих доступных больших баз данных SQL, FileMaker объединяет базу данных и графический интерфейс в один файл. В этом есть свои плюсы, но есть и свои подводные камни. Одна из самых больших ловушек, которые я видел, заключается в сложности обновления систем.

Мы очень часто создаем новую систему для клиента. Мы поставляем эту систему клиенту, и он начинает ее использовать. Увидев, на что он способен, они часто возвращаются к нам с новыми функциями, которые хотели бы добавить. Обычно это влечет за собой работу с автономной копией файлов, чтобы добавить запрошенный набор функций.

Однако после того, как функции будут разработаны, наступит время, когда новой системе потребуются новые данные, и поэтому нам придется объединить эти два элемента вместе, что мы обычно называем миграцией данных 1:1.

Основные проблемы, которые я выявил с помощью FileMaker для настройки переноса данных

  1. В FileMaker отсутствует правильный идентификатор для обозначений PRIMARY KEY, и вместо этого обычно используется свойство «автоматически вводить серийный номер» в поле, которое необходимо обновить после миграции.
  2. FileMaker позволяет импортировать только одну таблицу за раз
  3. Миграции данных должны быть согласованными, чтобы тестовый запуск отражал то, как будет работать производственный запуск.

Каким было бы идеальное решение?

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

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

Нестандартное мышление

В этот момент я знал об ограничениях, с которыми столкнулся, и был полон решимости их преодолеть. Я знал, что вместо того, чтобы FileMaker перебирал все таблицы в моей системе и автоматически выполнял импорт и обновлял поля серийных номеров, мне нужно было бы использовать другой подход. Я подумал, что, поскольку он не может делать именно то, что я хотел, мне нужно найти следующую лучшую вещь. Следующей лучшей вещью, которую я мог бы придумать, было бы, если бы FileMaker Pro действительно написал для меня сценарии переноса данных. Теперь это тоже было проблемой, потому что вы не можете напрямую создать скрипт FileMaker другим скриптом FileMaker.

Однако теплилась надежда.

В FileMaker Pro есть ряд вещей, которые вы можете копировать/вставлять. Однако часто, когда вы используете эти команды, данные, которые вы копируете (или вставляете), будут использовать собственный внутренний (и проприетарный) буфер обмена FileMaker, а не просто использовать буфер обмена базовой операционной системы. Информация, которая сохраняется в буфере обмена FileMaker, хранится в формате XML. Скрипты FileMaker — это одна из тех вещей, которые сохраняются во внутреннем буфере обмена FileMaker всякий раз, когда вы их копируете/вставляете. С помощью стороннего инструмента («Clip Manager Express» FM Butler) я смог получить данные из внутреннего буфера обмена FileMaker и перепроектировать формат XML, который используется для сценариев, папок сценариев, разделителей и т. д.

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

Результат

Написание сценариев переноса данных для систем FileMaker обычно занимает много времени. Даже если это просто миграция данных 1:1, обычно мне требуется целый рабочий день, чтобы написать сценарии.

Когда мы это сделали, мы могли найти более старую систему, для которой мы написали сценарии переноса данных, но у нас не было стандартизированного шаблона для работы. Кроме того, эти сценарии по-прежнему нужно было писать от руки, и в них часто отсутствовали перехват/регистрация ошибок. Благодаря этому новому Data Migration Master у нас теперь есть способ значительно сократить время, затрачиваемое на написание этих сценариев миграции данных, обеспечить их более высокую точность, добавить регистрацию ошибок и даже привлечь ваше внимание к потенциально проблемным областям в ходе миграции.

Этот инструмент был создан во время разработки системы для Crystal Sensations, и я усовершенствовал его во время разработки нескольких других систем. Я использовал его во время последней миграции данных для UHAC, и это сэкономило массу времени.

UHAC — это система среднего размера, поэтому на написание сценариев миграции для нее у меня ушло бы около дня. Зная, как использовать этот новый инструмент, я смог написать полнофункциональную миграцию данных примерно за 45 минут.

Это победа в моих книгах.

Как это работает

Это простая программа из 12 шагов.

Первоначально опубликовано на coresolutions.ca.