пятница, 3 июня 2011 г.

Хранение базы gnucash в PostgreSQL

Много лет я ждал момента, когда можно будет отказаться от хранения данных программы финансового учёта gnucash в XML-файле, и станет возможным использовать базу данных. Наконец я добрался попробовать появившуюся в gnucash 2.4.x возможность хранения в базе данных. Меня интересовал PostgreSQL.

Обычно gnucash уже правильно собран (параметр --enable-dbi при сборке), поэтому остаётся только доустановить пакет с драйвером базы для dbi (в моём случае libdbi-drivers-dbd-pgsql) и запустить gnucash.
Открыв нужный XML-файл, остаётся выбрать из меню Файл->Сохранить как и в появившемся диалоге выбрать сверху из выпадающего списка «Формат данных» (сейчас неверно переведено «Формат даты» :)) postgres. После этого указываем название базы, логин и пароль, и данные сохраняются в базу. Всё прекрасно.
После этого адресом для данных становится postgres://USER@HOST/DATABASE вместо привычного пути к файлу. Для подключения с другой машины (другого пользователя) в меню Файл->Открыть можно выбрать опять же «Формат данных», postgres и указать данные для доступа к базе.

Всё отлично работает. Но главное разочарование в том, что при попытке открыть одновременно две базы получаем сообщение, что база заблокирована, одновременно открывать её несколько раз нельзя... Ну вот... А я собирался перейти на использование PostgreSQL только из-за этого... Проблема обсуждалась давно, но одновременный доступ не предусмотрен, поскольку работа с базой идёт через такую же абстракцию, как и работа с файлом.

Ссылки:
GnuCash 2.4.0 is out ,mysql ,postgresql,sqlite

1 комментарий:

Алексей Убоженко комментирует...

Виталий, я ждал поддержки MySQL и так же надеялся на мультиюзер для этого программного продукта. К сожалению, пока это не сделано (и не факт, что будет). Но буду надеяться. :)