我们能否使用Meteor框架与MySQL数据库?

4

我发现许多涉及Meteor框架的参考网址都使用mongodb作为数据库,但是我对mongodb并不是很了解。那么是否有办法可以用mysql来代替mongodb呢?


我代表客户构建了一个MySQL软件包。他们希望将其作为开源发布,敬请关注。起初,这只是为了修复Dror版本中的致命问题,但很快我意识到需要完全重写以供生产使用。 - matb33
1
@matb33 我期待着你的更新。 - Sunith Saga
请参考此页面上的答案。meteor-js-and-sql-server - Churchill
4个回答

7

有一种方法,但是在目前的框架阶段,这是一条未铺设的道路。基本上,您需要编写一个包装器,将SQL转换为Meteor的Minimongo,然后再进行反向转换。如果您不是Meteor和Mongo大师,则这不是可行的任务。

曾经有人尝试编写这样的适配器。我知道的最先进的是这个:https://github.com/drorm/meteor-sql。可以用来玩,但我认为它还没有准备好投入生产。此外,目前没有办法使用除Mongo以外的任何东西与Meteor账户系统配合使用。您要么必须仍然使用它来进行用户帐户,要么放弃它们提供的巨大便利。

我建议您尝试使用当前的Meteor,以及Mongo - 它比您想象的要容易。它不会增加太多的学习曲线,除了过滤和更新运算符之外,您甚至不会注意到自己使用某些奇怪的数据库 - 它就像使用本机Javascript对象一样。没有模式,没有迁移,也不需要对象映射。您只需获取数据,将其放入集合中,然后忘记SQL让您思考的所有其他内容。


2
关于官方SQL支持的时间表,Meteor联合创始人Geoff Schmidt表示,这将在Meteor 1.0之后推出: http://youtu.be/ixt5MQBA5f8?t=11m45s http://youtu.be/ixt5MQBA5f8?t=22m10s - alanning

1

来自文档:

现在,大多数Meteor应用程序使用MongoDB作为它们的数据库,因为它得到了最好的支持,虽然对于其他数据库的支持也在未来会有。 Meteor.Collection类被用来声明Mongo集合并对它们进行操作。由于minimongo,Meteor的客户端Mongo仿真器,Meteor.Collection可以从客户端和服务器代码中使用。

由于客户端使用minimongo,使用RDBMS可能不是最佳选择(查询语言和数据结构非常不同)。

你可能会对像breeze.js这样的东西感兴趣,它从不同的角度解决了丰富数据同步服务的问题,但适合关系数据库。


1

也许有一种方法可以做到这一点,但是它很棘手:

从npm安装Mysql驱动程序,然后您可以选择使用MongoDb作为第一个前端或来自Arunoda的Meteor Streams。 然后,您只需使用Meteor.Collections的deny/allow系统将客户端的插入/更新/删除绑定到Mysql。 您还应该使用发布系统查询Mysql数据库并将数据返回给客户端。

最后一个问题是关于服务器数据库观察:如果Mysql中有任何更改,它不会提醒所有其他客户端,除非可能使用Meteor.Streams。 实现这个可能会相当有趣。


1
你可以查看这个 Meteor 包 nodets:mysql。 在服务器上使用 mysql,客户端订阅都会在数据库更改时更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接