2015-06-11 3 views
0

FileMaker Pro похож на Microsoft Access. Я хочу взять данные FileMaker и импортировать их в базу данных PostgreSQL.Как импортировать данные из FileMaker Pro в PostgreSQL

Любые предложения? Должен ли я писать программу для этого? Или я должен помещать данные FileMaker в Access и импортировать данные оттуда?

Благодарим вас за вход !!

+0

«FileMaker Pro похож на Microsoft Access.» «Нет никакого сходства между FileMaker и Access, за исключением того, что оба являются реляционными базами данных. Но тогда PostgreSQL, так что вы не получите преимущества перехода через Access. –

ответ

1

Да, вы можете это сделать. Вы можете использовать Access как средний уровень в этом процессе, но нет причин делать это иначе, чем личные предпочтения.

Во-первых, я бы посоветовал вам потратить некоторое время на анализ базы данных FileMaker. Все ли таблицы данных разработаны со стандартными реляционными принципами? (FileMaker поддерживает, но не обеспечивает реляционный дизайн). Являются ли типы полей логически определенными, а первичные/вторичные ключи согласованы и хорошо структурированы? Если нет, я настоятельно рекомендую вам решить эти проблемы (либо в FileMaker, либо в Access, если хотите), прежде чем продолжить миграцию.

Во-вторых, я бы посмотрел, есть ли какие-либо уникальные структуры данных FileMaker, которые не будут передаваться чисто. Вот основные из них, чтобы не упустить:

  • вычисляемых полей, которые играют тяжелую роль (особенно в более ранних решений FileMaker) не будет переводить непосредственно в SQL и, вероятно, следует просто отбросить и воссозданы с логикой приложения позже ,
  • Повторяющиеся поля, наследие, оставшееся от предреляционных дней FileMaker, должны быть переведены в отдельные табличные структуры;
  • Контейнерные поля, похожие на SQL BLOB. Задача здесь - найти чистый способ получить данные контейнера в SQL, поскольку CSV и подобные форматы не будут принимать blobs, если вы не конвертируете их в Base64 (FileMaker может сделать это для вас, если это необходимо);
  • Ограничения данных; они просто затеряются в передаче, поэтому, вероятно, лучше всего отметить все, о чем вы заботитесь, и воссоздать их вручную в нашем Postgres DDL.

После того как вы сделали эту подготовку, вы можете легко экспортировать данные из FileMaker в стандартный формат, например CSV, который, в свою очередь, может быть импортирован непосредственно в новые таблицы Postgres. Ключевые вещи, чтобы наблюдать за здесь:

  • Для каждой таблицы FileMaker вы будете экспортировать, не забудьте выбрать все записи перед экспортом, чтобы гарантировать, что все записи включены (в противном случае, FileMaker будет экспортировать только записи в настоящее время для поиска текущая таблица).
  • Вам нужно будет экспортировать данные отдельно для каждой таблицы, которую вы хотите переместить в Postgres.

Последнее, конечно, определяет новые таблицы в Postgres и импортирует данные CSV.

+0

CSV не сохраняет имена полей или типы данных. Было бы лучше использовать формат Merge (в основном CSV с заголовком имен полей) или - намного лучше, IMHO - XML, который имеет как имена полей, так и типы данных. –

+0

Хорошая точка, сохраняющая имена столбцов и форматирование. Однако ... для меня самая большая точка здесь - большая разница между структурами FileMaker и SQL и необходимость вручную отбирать такие вещи, как повторяющиеся/итоговые/вычисленные/глобальные поля, ограничения на уровне поля и другие подобные вещи вручную. Это неотъемлемая часть любой твердой структуры решения FileMaker, и они не попадут непосредственно в SQL. –

+0

Ну, название этого вопроса: «Как импортировать данные ...». По сути, между ними не должно быть практически никакой разницы, если в решении FileMaker не используются повторяющиеся поля (которые BTW могут обрабатываться путем экспорта в формате XML и использования XSLT для преобразования их в отдельные записи). –

0

Как все сказано, передача данных в Access приведет только на дополнительную работу, которая совершенно не нужна,

Я предлагаю смотреть на FileMaker ODBC для извлечения данных, или с помощью драйвера Postgres ODBC и вставлять данные из FileMaker с " Execute SQL "в таблицы PostgreSQL.

0

Я бы не стал проходить через Access, если не существует какой-то убедительной, неустановленной причины для этого.

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

Если вам нужно повторить и продолжить жить, я бы посмотрел в ODBC-соединение в FileMaker и напишу процедуру в логике вашего приложения для системы PostgreSQL.

+0

есть cvs опечатка? ... csv? –

0

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

Когда я выполняю эти преобразования с помощью FmPro Migrator, я всегда делаю прямое соединение между базами данных - чтобы сохранить кодировку UTF8 в данных FileMaker.

Еще одно соображение заключается в том, хотите ли вы также преобразовать GUI и бизнес-логику (скриптинг) из FileMaker для использования с вашей базой данных PostgreSQL. Объекты в FileMaker могут быть извлечены как XML, что позволяет преобразовать эти объекты в нечто эквивалентное и полезное в другом приложении. Одним из популярных решений для графического интерфейса сегодня является веб-приложение PHP.

Так, например, элементы из макетов FileMaker (поля, изображения, текстовые метки, объекты векторной графики) могут быть преобразованы в HTML, CSS и JavaScript в веб-приложение PHP.

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

По соображениям производительности может быть очень полезно преобразовать поля нечетких вычислений и сводки FileMaker в SQL Views. Таким образом, вычисления выполняются на сервере базы данных, а не через PHP в веб-приложении.

Смежные вопросы