作者能力有限,欢迎砍砖
因为在建立工程的时候为了使用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
其他的我就不多说了,官方文档已经写的各种清晰明了了~