Meteor を使用してリレーショナル データベース (PostgreSQL) に接続したいと考えています。Meteor を他のデータベースに接続した経験はありますか?
PostgreSQL で Meteor の優れた機能を使用するには、独自のコネクタを作成する必要があると思います。
更新: 以下の回答を参照してください。この質問はまだ注目を集めているため、ここに解決策へのリンクがあります。
Meteor を使用してリレーショナル データベース (PostgreSQL) に接続したいと考えています。Meteor を他のデータベースに接続した経験はありますか?
PostgreSQL で Meteor の優れた機能を使用するには、独自のコネクタを作成する必要があると思います。
更新: 以下の回答を参照してください。この質問はまだ注目を集めているため、ここに解決策へのリンクがあります。
はい、独自のコネクタを作成する必要があります。私はmysqlについてもそのようなことを探していますが、誰もこの分野で何らかの努力を始めたとは思いません. この方向で進行中の取り組みを知りたいです。
mysqlの同様の質問を見てください。mysql を使用した流星
まだ探しているかどうかはわかりませんが、これが役立つかもしれません: https://github.com/meteor-stream/meteor-postgres
あなたが私のような人なら、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 統合で調達した資金の一部を使用する場合、アプリはそのまま機能する可能性が高くなります。
PostgreSQL は現在、実験的に Meteor でサポートされています。
https://github.com/meteorhacks/npmを使用して、NPM パッケージのサポートを追加できます 。
次に、NPM PG パッケージ https://github.com/brianc/node-postgresをインストールできます。
それは私にとってはうまくいきます