2利用1个MySQL数据库的Rails应用程序 - 有哪些风险?

时间:2011-03-25 18:15:29

标签: mysql ruby-on-rails ruby-on-rails-3

环境:
Ubuntu hardy LTS,Apache 2,Passenger
Virtual Server One:rails 2.3.8应用程序访问MySQL common_database
虚拟服务器二:rails 3.0.4应用程序访问相同的MySQL common_database

第一个应用程序定期从我们的客户处使用。第二个应用程序已发布,但目前正在使用它。数据库似乎工作正常。

有人告诉我,这种配置最终可能会破坏数据库。我们预计第二个应用程序最终会被大量使用。如果数据库损坏,它会扼杀一些动力。还有一些事实:

  1. 两种应用程序都无法更改数据库结构。
  2. 两个应用程序将同时访问相同的表格。
  3. 两个应用都无法同时尝试更新同一条记录。
  4. 是否有人遇到过在这种配置中访问过的MySQL数据库的损坏?你能克服这个问题吗?怎么样?

1 个答案:

答案 0 :(得分:4)

腐败风险是怎么回事?

只要您不使用rake db:migrate并且两个应用程序具有相同的模型,您就会有两个或更多具有相同应用程序版本的Web服务器的风险大致相同。如果对两个应用程序之间的数据库模式的期望存在偏差,则可能会遇到问题,特别是如果分歧与外键或基于魔术值的应用程序逻辑相关。

对于数据库的任何并发操作,您会遇到一类围绕同时修改相同记录的问题(当两个客户端尝试修改同一条数据时,谁赢了;您使用什么类型的锁定模型等)。

相关问题