Frage

Wenn es möglich ist, ich bin interessiert in der Lage, eine PostgreSQL-Datenbank, ähnlich wie SQLLite einzubetten. Ich habe gelesen, dass es nicht möglich ist. Ich bin keine Datenbank-Experten aber, so mag ich von Ihnen hören.

Im Grunde möchte ich PostgreSQL ohne all die Konfiguration und Installation. Wenn es möglich ist, sagen Sie mir, wie.

War es hilfreich?

Lösung

Wenn Sie eine große Umschreiben des Codes zu tun, ist es nicht möglich, Postgres zu laufen „embedded“. Entweder es als separater Prozess ausgeführt oder etwas anderes verwenden. SQLite ist eine ausgezeichnete Wahl. Aber es gibt andere. MySQL hat eine eingebettete Version. Sehen Sie es unter http://mysql.com/oem/ . Auch mehrere Java-Auswahl und Mac hat Core Data Sie auch schreiben kann. Verdammt, Sie können sogar FoxPro verwenden. Was OS Sie auf und welche Dienste Sie aus der Datenbank benötigen?

Andere Tipps

Sie können es nicht einbetten, noch sollten Sie versuchen.

Für das Einbetten sollten Sie SQLite verwenden, wie Sie erwähnt oder Firebird RDBMS .

Ausführen postgresql in einem Hintergrundprozess.

Starten Sie einen separaten Thread in Ihrer Anwendung, die einen PostgreSQL-Server im lokalen Modus starten würde entweder durch Bindung mit einem zufällig frei Port auf localhost oder durch Sockets (tut Fenster Unterstützung Steckdosen?). Das sollte ziemlich einfach sein, so etwas wie:

System ( "C: \ Programme \ MyApplication \ pgsql \ postgres.exe -D C: \ Dokumente und Einstellungen \ Benutzer \ Lokale Einstellungen \ MyApplication \ database -h 127.0.0.1 -p 12345");

und schließen Sie dann nur zu 127.0.0.1:12345.

Wenn die Anwendung beendet wird, können Sie immer ein SIGTERM zu Ihrem Thread schicken und dann einige Sekunden warten, für postgresql (dh verbindet den Faden) zu beenden.

PS: Sie können auch pg_ctl Ihre "embedded" zu steuern, Datenbank, auch ohne Gewinde, um nur „pg_ctl start“ tun (mit entsprechenden Optionen) beim Starten der Anwendung und „pg_ctl Stopp“, wenn es beendet wird.

Sie können es nicht einbetten als in Prozesstyp etwas wie SQLite etc, aber Sie können leicht einbetten es in Ihre Anwendung Setup mit Inno Setup http://www.innosetup.org . Suchen Sie ihre Mailing-Liste Archiv und Sie werden jemanden für Sie hat die meiste Arbeit finden und alles, was Sie müssen, ist die gezippte Distro greifen und man kann leicht postgresql installiert haben, wenn der Benutzer die App installiert. Anschließend können Sie die Datei pg_hba.conf verwenden, um die Server zu lokalen Hosts zu beschränken. Nicht um eine echte eingebettete DB, aber es funktionieren würde.

PostgreSQL soll als Stand-alone-Server laufen zu lassen; es ist wahrscheinlich möglich, es einzubetten, wenn man es hackt hart und lang genug, aber es wäre viel einfacher, nur um es zu laufen, wie in einem separaten Prozess vorgesehen.

HSQLDB (http://hsqldb.org/) ist ein weiterer db, die leicht eingebettet ist. Benötigt Java, sondern ist eine ausgezeichnete und häufig verwendete Wahl für Java-Anwendungen.

Jeder versucht, auf Mac OS X:

http://pagesperso-orange.fr/bruno.gaufier/xhtml /prod_postgresql.xhtml

http://www.macosxguru.net/article.php?story=20041119135924825

(Natürlich SQLite würde mein eingebettet db der Wahl als auch sein)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top