Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программы > База данных > PostgreSQL

Конвертация базы данных из формата xDbase в PostgreSQL

Конвертация DBF в Postgres

 pgdbf -s cp866 -N file > sqlfile
При установке часто возникает ошибка:
 alexruss@alexruss:~/pgdbf$ ./configure
 checking for a BSD-compatible install... /usr/bin/install -c
 checking whether build environment is sane... yes
 /home/alexruss/pgdbf/missing: Unknown `--is-lightweight' option
 Try `/home/alexruss/pgdbf/missing --help' for more information
 configure: WARNING: 'missing' script is too old or missing
 checking for a thread-safe mkdir -p... /bin/mkdir -p
 checking for gawk... no
 checking for mawk... mawk
 checking whether make sets $(MAKE)... no
 checking whether make supports nested variables... no
 checking for gcc... no
 checking for cc... no
 checking for cl.exe... no
 configure: error: in `/home/alexruss/pgdbf':
 configure: error: no acceptable C compiler found in $PATH
 See `config.log' for more details

 apt-get install gcc
 apt-get install libtool
в папке ./autoconf -vfi (создастся файлик ./compile)
 make
P.S. В OpenServer установить программу не удастся!!!


Загрузка данных в базу PostgreSQL

Используем Far Manager с установленным плагином "Преобразование текста" (TextConv). Стоя на файле нажимаем F11 и выбираем "Преобразование текста".
Исходная кодировка файла: Auto
 [] Удалить пробелы в конце строк
 [] Удалить пустые строки в конце файла
 [] Изменить символ перевода строки на LF
 [x] Изменить кодировку на '''"1251 (ANSI - Кириллица)"''', если для OpenServer или на '''"65001 (UTF-8)"''', если для UNIX-сервера
 [] Добавить сигнатуру BOM
 [x] Сохранить резервную копию (.bak)
Нажимаем OK

Заходим в консоль OpenServer, заходим в каталог с файлом и выполняем команду:
 psql -h localhost -U postgres -d database -f file.sql
где
localhost - host
postgres - роль в базе данных (с правами на создание таблиц)
database - база данных
file.sql - файл с данными в формате SQL

Далее анализируем ошибки и исправляем их. Типовые ошибки:
  • размеры полей не соответствуют данным, решается переназначением в тип TEXT
  • ERROR: character with byte sequence 0x98 in encoding "WIN1251" has no equivalent in encoding "UTF8" решается выполнением команды:
     cat file.sql | tr '\230' '\040' > file_new.sql

  • Главная > Программы > База данных > PostgreSQL