Rails3 下使用Sequel代替ActiveRecord连接mysql使用mysql2 a...

作者能力有限,欢迎砍砖

因为在建立工程的时候为了使用mongoid所以我就skip了activerecord,结果发现还是有一些mysql的数据要读,就悲剧了

想把activerecord再连回来吧。感觉有点小麻烦,于是就找了找

发现我还真文盲

居然不知道有tenacity这么高等的神器,网费我写了这么久rails了,哎。。。

tenacity的地址是:https://github.com/jwood/tenacity

和我一样不了解这东西的朋友可以看看,我就贴出来他的一个信息,相信大家就都明白了


Supported Database Clients
ActiveRecord
CouchRest (CouchRest::Model and ExtendedDocument)
DataMapper
MongoMapper
Mongoid
Ripple
Sequel
Toystore


怎么样高科技吧~~


但是感觉这么高科技的东西我用上就为了读个mysql了的一点数据,有点浪费,于是就看了看这里面提到的

Sequel  => https://github.com/jeremyevans/sequel

果然高科技啊


好吧好吧,废话不多说,正文开始

Sequel支持的adapter很多,下面是引自官方:


Sequel currently has adapters for ADO, Amalgalite, CUBRID, DataObjects, DB2, DBI, Firebird, IBM_DB, Informix, JDBC, MySQL, Mysql2, ODBC, OpenBase, Oracle, PostgreSQL, SQLite3, Swift, and TinyTDS.


很犀利吧~

所以我就决定用这个了

最基本的先得是


gem "sequel"
gem "mysql2"


官方其实还是很贴心的,介绍了如果连接sqlite,但是就是死活没介绍怎么连接mysql2

于是我度娘加谷姐了一下,发现了可以用connect方法,于是有发现了mysql2的官方说,在connect的时候需要mysql2://

变态的事情就是我的的密码中有个@但是 ,正经的应该是

mysql2:user:password@host :port/database_name

所以这个方法我行不通,看了看源代码,于是我选择了另外一个方法


DB = Sequel.connect("mysql2://host:port/database_name", {:username => 'username', :password => 'password'})

这样的写法,问题就解决了

当然,除了username参数,我们还可以设置

:max_connections

:logger

等等,这个我们可以参考mysql2的github

以及sequel的github

其他的我就不多说了,官方文档已经写的各种清晰明了了~

你可能感兴趣的:(mysql,ActiveRecord,rails3,ruby_on_rails,sequel)