Pregunta

Si es posible, me interesa poder incrustar una base de datos PostgreSQL, similar a sqllite.He leído que es imposible.Sin embargo, no soy un experto en bases de datos, así que quiero saber de usted.

Básicamente quiero PostgreSQL sin toda la configuración e instalación.Si es posible, dime cómo.

¿Fue útil?

Solución

A menos que realice una reescritura importante del código, no es posible ejecutar Postgres "incrustado".Ejecútelo como un proceso separado o use otra cosa.SQLite es una excelente opción.Pero hay otros.MySQL tiene una versión integrada.Véalo en http://mysql.com/oem/.También hay varias opciones de Java, y Mac tiene datos básicos que también puedes escribir.Demonios, incluso puedes usar FoxPro.¿En qué sistema operativo estás y qué servicios necesitas de la base de datos?

Otros consejos

No puedes incrustarlo, ni deberías intentarlo.

Para incrustar debes usar sqlite como mencionaste o rdbms pájaro de fuego.

Ejecute postgresql en un proceso en segundo plano.

Inicie un hilo separado en su aplicación que iniciaría un servidor postgresql en modo local, ya sea vinculándolo a localhost con algún puerto libre aleatorio o usando sockets (¿Windows admite sockets?).Eso debería ser bastante fácil, algo como:

system("C:\Archivos de programa\MiAplicación\pgsql\postgres.exe -D C:\Documentos y configuraciones\Usuario\Configuración local\MiAplicación\base de datos -h 127.0.0.1 -p 12345");

y luego simplemente conéctese a 127.0.0.1:12345.

Cuando su aplicación se cierra, siempre puede enviar un SIGTERM a su hilo y luego esperar unos segundos hasta que se cierre postgresql (es decir, unirse al hilo).

PD:También puedes usar pg_ctl para controlar su base de datos "incrustada", incluso sin subprocesos, simplemente haga "pg_ctl start" (con las opciones apropiadas) al iniciar la aplicación y "pg_ctl stop" al salir de ella.

No puede incrustarlo como algo en proceso como sqlite, etc., pero puede incrustarlo fácilmente en la configuración de su aplicación usando Inno setup en http://www.innosetup.org.Busque en el archivo de su lista de correo y encontrará que alguien hizo la mayor parte del trabajo por usted y todo lo que tiene que hacer es tomar la distribución comprimida y podrá instalar postgresql fácilmente cuando el usuario instale su aplicación.Luego puede usar el archivo pg_hba.conf para restringir el servidor únicamente al host local.No es una verdadera base de datos integrada, pero funcionaría.

PostgreSQL está pensado para ejecutarse como un servidor independiente;Probablemente sea posible incrustarlo si lo piratea con fuerza y ​​​​el tiempo suficiente, pero sería mucho más fácil ejecutarlo según lo previsto en un proceso separado.

HSQLDB (http://hsqldb.org/) es otra base de datos que se integra fácilmente.Requiere Java, pero es una opción excelente y de uso frecuente para aplicaciones Java.

Cualquiera lo intentó en Mac OS X:

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

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

(Por supuesto, sqlite también sería mi base de datos integrada de elección)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top