如何解决带有Mysql Master / Slave的Datamapper
| 我似乎找不到任何有关如何使用datamapper与mysql主/从设置对话的信息。我正在使用dm-mysql-adapter运行rails3解决方法
您可以为此使用DataMapper的多个数据存储功能:
DataMapper.setup(:default,\'mysql://master-host/mydb\')
DataMapper.setup(:slave,\'mysql://slave-host/mydb\')
现在,只要您想读取从属设备,请使用:
DataMapper.repository(:slave) do
Person.first
end
不幸的是,它看起来不像你可以做透明的从主从读取到主写入:
[...]这将使用您与:external数据存储和
它找到的第一人称。稍后,当您呼叫.save这个人时,
它将保存回:external数据存储;一个对象知道
它来自什么上下文,应该保存回去。
因此,如果您尝试保存从奴隶检索到的人,则修改后它将尝试将其存储回奴隶数据库。
,这可能是您要寻找的...
https://github.com/d11wtq/dm-master-slave-adapter
,您不必在应用程序中执行此操作,但是Mysql可以自行处理。这样,通过自动主服务器故障转移,您可以利用负载平衡和高可用性的所有优势。我强烈建议您通过基于应用程序的手动负载平衡进行此设置,因为您应该将持久层置于应用程序提供的业务逻辑之外。这带来了已经写好的优点,并且由于更好的关注点分离,使您的应用程序更具可伸缩性和可维护性。
有关概念的信息,请参见Mysql NDB文档;有关Mysql Clustering的快速入门,请参见本教程。
,1)您必须安装适配器。
2)添加要求
需要\'rubygems \'
要求\'data_mapper \'
3)配置我的SQL
DataMapper.setup(:default,\'mysql://localhost/the_database_name\')
要么
DataMapper.mysql(:host xxxx,:user xxxx,:password xxxx,:database xxxx)
4)创建您的模型对象,例如:
class Post
include DataMapper::Resource
property :id,Serial # An auto-increment integer key
property :title,String # A varchar type string,for short strings
property :body,Text # A text block,for longer string data.
property :created_at,DateTime # A DateTime,for any date you might like.
end
如果您有任何疑问,可以查看以下链接:http://datamapper.org/getting-started
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。