可能であれば、どのようにして PostgreSQL を埋め込むことができますか?

StackOverflow https://stackoverflow.com/questions/60285

質問

可能であれば、次のような PostgreSQL データベースを埋め込むことができることに興味があります。 スクライト. 。それは読んだことがあります ありえない. 。ただし、私はデータベースの専門家ではないので、あなたの意見を聞きたいです。

基本的に、すべての構成とインストールを行わずに PostgreSQL を使用したいと考えています。可能であれば、その方法を教えてください。

役に立ちましたか?

解決

コードを大幅に書き直さない限り、Postgres を「埋め込み」で実行することはできません。別のプロセスとして実行するか、別のものを使用してください。SQLite は優れた選択肢です。しかし、他にもあります。MySQL には組み込みバージョンがあります。でご覧ください http://mysql.com/oem/. 。また、Java の選択肢もいくつかあり、Mac には書き込み可能なコア データもあります。いや、FoxPro を使うこともできます。どの OS を使用していますか? データベースからどのようなサービスが必要ですか?

他のヒント

埋め込むことはできませんし、試みるべきでもありません。

埋め込みには使用する必要があります スクライト あなたが言ったように、または ファイアバード RDBMS.

バックグラウンドプロセスでpostgresqlを実行します。

ランダムな空きポートを使用して localhost にバインドするか、ソケット (Windows はソケットをサポートしていますか?) を使用して、ローカル モードで postgresql サーバーを起動するアプリケーション内で別のスレッドを起動します。それはかなり簡単なはずです。次のようなものです。

system("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 が終了する (つまり、スレッドに参加する) まで数秒待つことができます。

追伸:も使用できます pg_ctl 「組み込み」データベースを制御するには、スレッドがなくても、アプリケーションを開始するときに「pg_ctl start」(適切なオプションを使用して) を実行し、アプリケーションを終了するときに「pg_ctl stop」を実行するだけです。

sqlite などのインプロセス タイプとして埋め込むことはできませんが、次の Inno setup を使用してアプリケーション セットアップに簡単に埋め込むことができます。 http://www.innosetup.org. 。彼らのメーリング リスト アーカイブを検索すると、誰かがあなたのためにほとんどの作業を行ってくれたことがわかります。必要なのは、zip 形式のディストリビューションを入手するだけで、ユーザーがアプリをインストールするときに簡単に postgresql をインストールすることができます。その後、pg_hba.conf ファイルを使用して、サーバーをローカル ホストのみに制限できます。本当の組み込み DB ではありませんが、機能するでしょう。

PostgreSQL はスタンドアロン サーバーとして実行することを目的としています。しっかりと時間をかけてハッキングすれば埋め込むことはおそらく可能ですが、別のプロセスで意図したとおりに実行する方がはるかに簡単です。

HSQLDB (http://hsqldb.org/) は、簡単に埋め込めるもう 1 つのデータベースです。Java が必要ですが、Java アプリケーションにとっては優れた選択肢であり、よく使用されます。

Mac OS X で試した人はいますか?

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

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

(もちろん、sqlite も埋め込みデータベースとして選択します)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top