Выгрузка базы Firebird в CSV и Excel
fbrescue записывает каждую таблицу базы Firebird 2.5–5.0 в отдельный CSV-файл прямо из файла базы, без сервера, ODBC-драйвера и пароля. Скачайте бинарник для своей системы на странице Releases и выполните:
fbrescue export shop.fdb --out data
data/
schema.sql операторы CREATE TABLE
CUSTOMERS.csv по файлу на таблицу
ORDERS.csv
_errors.jsonl только если какие-то строки не прочитались
Чтобы выгрузить только некоторые таблицы, используйте --table ИМЯ (можно несколько раз). Если базой пользуется сервер, сначала сделайте копию файла: копия, снятая во время записи, может быть несогласованной.
Как выглядит CSV
- Формат. RFC 4180: значения через запятую, первая строка — названия колонок, кодировка UTF-8, кавычки там, где они нужны.
- NULL и пустая строка различаются. NULL — пустое поле, пустая строка —
"". - Числа точные.
NUMERIC(18,2)выгружается как1234.50, а не как число с плавающей точкой. - Даты, время, логические значения. Даты
2024-02-29, время13:45:00.0000, метки времени2024-02-29 13:45:00.0000, логические значенияtrue/false. - BLOB. Текстовые BLOB записываются целиком, двоичные значения — в шестнадцатеричном виде.
CHARACTER SET NONE. Для текста в этой кодировке добавьте--charset WIN1251(или кодировку, с которой работала программа), чтобы получить читаемый UTF-8.
Открыть в Excel
Если открыть CSV двойным щелчком, Excel сам угадывает кодировку и разделитель. Русский текст при этом ломается, а при русских региональных настройках ещё и колонки: Excel ждёт точку с запятой. Правильно так: Данные → Из текстового/CSV-файла, выберите файл, в поле Источник файла укажите 65001: Юникод (UTF-8), разделитель — Запятая, затем Загрузить. LibreOffice Calc спрашивает то же самое в окне импорта.
Другие форматы
--format jsonl: по JSON-объекту на строку, точные числа — числами JSON. Удобнее всего для Python, Node илиjq.--format sql: операторы INSERT иschema.sql, чтобы загрузить данные в другую базу Firebird черезisql.
Переезд в другую СУБД — Firebird → PostgreSQL. Файл не открывается или выгрузка сообщает об ошибках — восстановление повреждённой базы.