#sql #database #transfer #dbf
#sql #База данных #передача #dbf
Вопрос:
Я переписываю программу на основе старой базы данных Foxbase, состоящей из files .dbf. Мне нужен инструмент, который бы читал эти файлы, и помогал в передаче данных в PostgreSQL. Может быть, вы знаете какой-нибудь инструмент такого типа?
Комментарии:
1. Вы могли бы довольно легко написать его с помощью этой информации dbf2002.com/dbf-file-format.html
2. @HughJones Это не так однозначно, как вы надеялись. Существует множество странных крайних случаев, зависящих от того, какая программа сгенерировала файлы. Например, некоторые варианты DBF используют двоичные десятичные числа для числовых полей и смещений файлов memo, в то время как другие используют целые числа. Также присутствует неприятная смесь больших и маленьких конечных чисел.
Ответ №1:
pgdbf.sourceforge.net — сработало для всех DBF, которые я в него загрузил. Цитирую описание сайта:
PgDBF — это программа для преобразования баз данных xBase — в частности, таблиц FoxPro с файлами memo — в формат, который PostgreSQL может импортировать напрямую. Это компактный проект на языке C без каких-либо зависимостей, кроме стандартных библиотек Unix.
Если вы ищете что-то для запуска в Windows, и это не компилируется напрямую, вы можете использовать cygwin (www.cygwin.com ) для сборки и запуска pgdbf.
Комментарии:
1. Действительно ли работает запуск под Cygwin? Я не знаю, почему этого не произойдет, но было бы здорово, если бы это произошло! (Я написал PgDBF.)
Ответ №2:
В качестве части пути миграции вы могли бы использовать Python и мой модуль dbf. Очень простой скрипт для преобразования файлов dbf в csv будет:
import sys
import dbf
dbf.export(sys.argv[1])
который создаст .csv
файл с тем же именем, что и файл dbf. Если вы поместите этот код в скрипт с именем dbf2csv.py
, вы можете вызвать его как
python dbf2csv.py dbfname
Надеюсь, есть несколько удобных инструментов для переноса файла CSV в PostgreSQL.