环境:
Ubuntu hardy LTS,Apache 2,Passenger
Virtual Server One:rails 2.3.8应用程序访问MySQL common_database
虚拟服务器二:rails 3.0.4应用程序访问相同的MySQL common_database
第一个应用程序定期从我们的客户处使用。第二个应用程序已发布,但目前正在使用它。数据库似乎工作正常。
有人告诉我,这种配置最终可能会破坏数据库。我们预计第二个应用程序最终会被大量使用。如果数据库损坏,它会扼杀一些动力。还有一些事实:
是否有人遇到过在这种配置中访问过的MySQL数据库的损坏?你能克服这个问题吗?怎么样?
答案 0 :(得分:4)
腐败风险是怎么回事?
只要您不使用rake db:migrate并且两个应用程序具有相同的模型,您就会有两个或更多具有相同应用程序版本的Web服务器的风险大致相同。如果对两个应用程序之间的数据库模式的期望存在偏差,则可能会遇到问题,特别是如果分歧与外键或基于魔术值的应用程序逻辑相关。
对于数据库的任何并发操作,您会遇到一类围绕同时修改相同记录的问题(当两个客户端尝试修改同一条数据时,谁赢了;您使用什么类型的锁定模型等)。