首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将流星与postgresql结合使用

将流星与postgresql结合使用
EN

Stack Overflow用户
提问于 2012-05-29 15:28:41
回答 6查看 7.6K关注 0票数 20

我想使用Meteor连接到关系数据库(PostgreSQL)。是否有将Meteor连接到其他数据库的经验?

我想我们必须编写自己的连接器才能使用Meteor与PostgreSQL的良好特性。

更新:见下面的答案。既然这个问题仍在引起人们的注意,这里就是解决问题的纽带。

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-04-24 10:50:52

不确定您是否还在寻找它,但这可能会有所帮助:https://github.com/meteor-stream/meteor-postgres

票数 4
EN

Stack Overflow用户

发布于 2012-06-14 18:57:41

是的,你必须写你自己的连接器。我也在为mysql寻找这样的东西,但我认为,没有人开始在这方面作出任何努力。我很想知道,在这方面正在进行的任何努力。

请看mysql的类似问题。带有mysql的流星

票数 5
EN

Stack Overflow用户

发布于 2015-05-08 04:46:47

如果你像我一样,你爱流星,却恨蒙古。在Meteor的Trello (https://trello.com/b/hjBDflxp/meteor-roadmap)中,最受欢迎的特性是PostgreSQL或MySQL。

由于在Meteor中没有这方面的日期,我在这里总结我发现的部分解决方案。

1.-只对客户端查询使用SQL。

**更新: alasql现在是一个流星包:

您可以将alaSQL安装在

代码语言:javascript
复制
  meteor add agershun:alasql

AlaSQL和Meteor收藏

现在您可以使用Meteor集合作为参数。将SQL应用于Meteor集合:

代码语言:javascript
复制
Template.body.helpers({
   tasks: function () {
     return alasql('SELECT * FROM ?',[Tasks]);
   }
});

或者,您可以在find()选项中使用特殊的METEOR() from-function:

代码语言:javascript
复制
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查询数据(包括联接、结块等等)将减轻很多痛苦。有些包允许您在客户机中使用SQL,至少用于查询:最简单的包是一个旧的(2010)实用程序SqlLike (http://www.thomasfrank.se/sqlike.html)。镇上的新玩家是alaSQL,这是@agershun (https://github.com/agershun/alasql)积极开发的。SqlLike的优势是它只有10k。当然,AlaSQL的功能要强大得多,但是在联合和聚合中使用SqlLike来代替mongosintax时,SqlLike是可以的。

通过这两种方法,您可以在您的助手中做这样的事情:

代码语言:javascript
复制
    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支持的实验。

一些软件包试图用MySql或PostgreSQL取代Mongo (和minimongo)。@numtel的MySql包是Meteor https://github.com/numtel/meteor-mysql,PostgreSQL是Meteor (https://github.com/numtel/meteor-pg)。这两种方法都是解决问题的好尝试,但都存在一些问题,而且在某种程度上难以适应。

哈克反应堆的一个团队已经形成了流星流,它的第一个产品是与流星,流星-邮政from (https://github.com/meteor-stream/meteor-postgres)的PostgreSql集成。它看起来非常好,并在客户端使用alaSql来替换minimongo。

这两种方法都很好,但也存在一些问题:

他们中断了对流星的部署。他们是非常,非常年轻,并没有接近生产准备的AFAIK,他们仍然需要调整通常的酒吧-子新税,这可能会引起与其他流星软件包的兼容性问题。3.-仍然使用Mongo,但作为MySql数据库的简单存储库。

此选项维护所有Meteor的特性,并使用Mongo作为MySql或PostgreSql数据库的时态存储库。

这方面的一项出色尝试是mysql-- @perak (https://github.com/perak/mysql-shadow)的影子。它按照它说的做,让Mongo与MySql保持同步,让我们用MySql来处理数据。

坏消息是,开发人员将不再继续维护它,但是所做的工作足以处理简单的场景,在这些场景中,您没有复杂的触发器来更新其他表或类似的东西。

对于功能齐全的同步,您可以使用SymmetricsDS (http://www.symmetricds.org),这是一个经过很好测试的数据库复制器。当然,这涉及到设置一个新的java服务器,但到目前为止,这是确保您能够在一个简单的MySql、PostgreSQL、server、Informix数据库的存储库中转换Mongo数据库的最佳方法。我得亲自检查一下。

就目前而言,MySQL阴影似乎是一个足够好的解决方案。

这种方法的一个优点是,您仍然可以使用所有标准Meteor功能、包、流星部署等等。你不需要做任何事情,只需要建立同步机制,而且你没有破坏任何东西。

另外,如果有一天Meteor团队使用SQL集成中筹集到的一些资金,您的应用程序更有可能按原样工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10802191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档