20

Meteor を使用してリレーショナル データベース (PostgreSQL) に接続したいと考えています。Meteor を他のデータベースに接続した経験はありますか?

PostgreSQL で Meteor の優れた機能を使用するには、独自のコネクタを作成する必要があると思います。

更新: 以下の回答を参照してください。この質問はまだ注目を集めているため、ここに解決策へのリンクがあります。

https://github.com/meteor-stream/meteor-postgres

4

6 に答える 6

5

はい、独自のコネクタを作成する必要があります。私はmysqlについてもそのようなことを探していますが、誰もこの分野で何らかの努力を始めたとは思いません. この方向で進行中の取り組みを知りたいです。

mysqlの同様の質問を見てください。mysql を使用した流星

于 2012-06-14T18:57:41.263 に答える
4

まだ探しているかどうかはわかりませんが、これが役立つかもしれません: https://github.com/meteor-stream/meteor-postgres

于 2015-04-24T10:50:52.937 に答える
4

あなたが私のような人なら、Meteor は好きだが Mongo は嫌いだ。Meteor の Trello ロードマップ ( https://trello.com/b/hjBDflxp/meteor-roadmap ) で最も投票された機能は、PostgreSQL または MySQL の SQL サポートです。

Meteor にはその日付がないため、ここで私が見つけた部分的な解決策を要約します。

1.- クライアント側のクエリにのみ SQL を使用します。

**UPDATE : alasql は meteor パッケージになりました:

alaSQLをインストールできます

  meteor add agershun:alasql

AlaSQL および Meteor Mongo コレクション

Meteor コレクションを引数として使用できるようになりました。Meteor Collections に SQL を適用します。

Template.body.helpers({
   tasks: function () {
     return alasql('SELECT * FROM ?',[Tasks]);
   }
});

または、特殊な METEOR() 関数からの find() オプションで使用できます。

return alasql('SELECT * FROM ?',[Tasks]);
return alasql('SELECT * FROM METEOR(?)',[Tasks]);
return alasql('SELECT * FROM METEOR(?,?)',[Tasks,{text:"Hello world!"}]);
return alasql('SELECT * FROM METEOR(?,{text:"Hello world!"})',[Tasks]);

率直に言って、Mongo は一般的なデータ操作が苦手なので、SQL を使用して (JOINS、GRUP BY などを使用して) データをクエリする機能があれば、多くの苦痛が軽減されます。少なくともクエリのために、クライアントで SQL を使用できるようにするパッケージがあります。町の新しいプレーヤーは、@agershun ( https://github.com/agershun/alasql ) によって活発に開発されている alaSQL です。SqlLike の利点は、10k しかないことです。もちろん、AlaSQL ははるかに強力ですが、SQL を使用してユニオンと集計で mongo sintax を置き換えるには、SqlLike で問題ありません。

それらの両方を使用すると、ヘルパーで次のようなことができます。

    productsSold:function(){
    var customerSalesHistory=salesHistory.find({cutomerId:Session.get('currentCustomer')}).fetch();
    var items=products.find().fetch();
    return alasql("select item.name, sales.ordered as sumaVentas from ? sales, ? items
      where items.Id=sales.itemId",[customerSalesHistory,items]);
}

2.- SQL の直接サポートを試してください。

一部のパッケージは、Mongo (および minimongo) を MySql または PostgreSQL に置き換えようとします。@numtel の MySql パッケージは Meteor-MySql https://github.com/numtel/meteor-mysqlで、PostgreSQL は Meteor-pg ( https://github.com/numtel/meteor-pg ) です。どちらも問題を解決するための優れた試みですが、まだいくつかの問題があり、適応するのがやや面倒です。

Hack Reactor のチームが Meteor Stream を結成しました。その最初の製品は、Meteor との PostgreSql 統合である meteor-postgres ( https://github.com/meteor-stream/meteor-postgres ) です。見栄えがよく、クライアントで alaSql を使用して minimongo を置き換えます。

どちらのアプローチも優れていますが、いくつかの問題があります。

彼らは流星への展開を破った。それらは非常に、非常に若く、実稼働の準備が整っていませんが、私たちが慣れ親しんでいる通常の pub-sub シンタックスを微調整する必要があり、他の流星パッケージとの互換性の問題が発生する可能性があります。3.- 引き続き Mongo を使用しますが、MySql データベースの単純なリポジトリとして使用します。

このオプションは、Meteor のすべての特性を維持し、MySql または PostgreSql データベースの一時リポジトリとして Mongo を使用します。

それに対する素晴らしい試みは、@perak による mysql-shadow ( https://github.com/perak/mysql-shadow ) です。それは、Mongo を MySql と双方向で同期させ、MySql でデータを操作できるようにします。

悪いニュースは、開発者がそれを維持し続けないということですが、他のテーブルやそのようなものを更新する複雑なトリガーを持たない単純なシナリオで動作するには十分です。

完全な機能を備えた同期には、十分にテストされたデータベース レプリケーターであるSymmetricsDS ( http://www.symmetricds.org ) を使用できます。もちろん、これには新しい Java サーバーのセットアップが含まれますが、実際の MySql、PostgreSQL、SQL Server、Informix データベースの単純なリポジトリーで Mongo データベースを確実に変換できるようにするための最良の方法です。私はまだそれを自分でチェックする必要があります。

今のところ、MySQL Shadow で十分なソリューションのようです。

このアプローチの利点の 1 つは、Meteor のすべての標準機能、パッケージ、Meteor の展開などを引き続き使用できることです。同期メカニズムをセットアップするだけで何もする必要はなく、何も壊していません。

また、いつか Meteor チームが SQL 統合で調達した資金の一部を使用する場合、アプリはそのまま機能する可能性が高くなります。

于 2015-05-08T04:46:47.790 に答える
2

PostgreSQL は現在、実験的に Meteor でサポートされています。

于 2015-08-24T04:46:10.223 に答える
2

https://github.com/meteorhacks/npmを使用して、NPM パッケージのサポートを追加できます 。

次に、NPM PG パッケージ https://github.com/brianc/node-postgresをインストールできます。

それは私にとってはうまくいきます

于 2015-04-05T23:48:26.130 に答える