Если возможно, как можно встроить PostgreSQL?
Если это возможно, я заинтересован в возможности встроить базу данных PostgreSQL, похожую на sqllite. Я читал, что это невозможно. Однако я не эксперт по базам данных, поэтому хочу услышать от вас.
По сути, я хочу PostgreSQL без всякой настройки и установки. Если это возможно, скажите мне, как.
Ответы
Ответ 1
Если вы не перейдете к основному переписыванию кода, невозможно запустить "встроенный" Postgres. Либо запускайте его как отдельный процесс, либо используйте что-то еще. SQLite - отличный выбор. Но есть и другие. MySQL имеет встроенную версию. Посмотрите на http://mysql.com/oem/. Также несколько вариантов java, и Mac имеет базовые данные, которые вы также можете написать. Черт, вы даже можете использовать FoxPro. Какая ОС вы и какие службы вам нужны из базы данных?
Ответ 2
Вы не можете вставлять его и не пытаться.
Для встраивания вы должны использовать sqlite, как вы упомянули, или firebird RDBMS.
Ответ 3
Запустите postgresql в фоновом режиме.
Начните отдельный поток в приложении, который запустит сервер postgresql в локальном режиме, либо привязав его к локальному хосту с помощью случайного свободного порта, либо с помощью сокетов (поддерживает ли Windows сокеты?). Это должно быть довольно легко, что-то вроде:
( "C:\Program Files\MyApplication\pgsql\postgres.exe -D C:\Documents and Settings\User\Local Settings\MyApplication\database -h 127.0.0.1 -p 12345" );
а затем просто подключитесь к 127.0.0.1:12345.
Когда ваше приложение завершает работу, вы всегда можете отправить SIGTERM в свой поток, а затем подождать несколько секунд, чтобы postgresql завершил работу (например, присоединился к потоку).
PS: вы также можете использовать pg_ctl для управления своей "встроенной" базой данных, даже без потоков, просто выполните "запуск pg_ctl" (с соответствующими параметрами) при запуске приложение и "pg_ctl stop" при выходе из него.
Ответ 4
Вы не можете вставлять его в виде типа типа типа sqlite и т.д., но вы можете легко вставлять его в свою настройку приложения с помощью установки Inno на http://www.innosetup.org. Найдите их архив списка рассылки, и вы найдете, что кто-то сделал большую часть работы для вас, и все, что вам нужно, это захватить zipped-дистрибутив, и вы можете легко установить postgresql, когда пользователь установит ваше приложение. Затем вы можете использовать файл pg_hba.conf, чтобы ограничивать сервер только локальным хостом. Не настоящая встроенная БД, но она будет работать.
Ответ 5
PostgreSQL предназначен для работы в качестве автономного сервера; возможно, возможно встроить его, если вы взломаете его достаточно жестко и достаточно долго, но было бы намного проще запустить его, как предполагалось, в отдельном процессе.
Ответ 6
HSQLDB (http://hsqldb.org/) - это еще один db, который легко внедряется. Требует Java, но является отличным и часто используемым выбором для приложений Java.
Ответ 7
Кто-нибудь пробовал Mac OS X:
http://pagesperso-orange.fr/bruno.gaufier/xhtml/prod_postgresql.xhtml
http://www.macosxguru.net/article.php?story=20041119135924825
(Конечно, sqlite также был бы моим встроенным db)