2011-01-21 36 views

回答

2

在发展:

  1. 确保Ruby的版本是一样的。复制所有宝石。
  2. 复制应用程序
  3. 进行数据库转储并将其加载到新数据库。如果DB是完全相同的版本和操作系统以及复制二进制数据文件可能就足够了。

在生产中最糟糕的部分是同步数据库和DNS。

  1. 如果您可以在域名的DNS条目中降低TTL(至1小时) - 让DNS传播更好地响应。
  2. 等待以前的TTL +新TTL以确保所有客户端和代理更新 - 同时您可以在新机器上准备Rails 3应用程序。
  3. 将新机器80端口上的TCP/IP转发设置为旧机器80端口,但工作站例外(有权访问新机器上的应用程序实例)。
  4. 完成准备应用程序,宝石,与副本的数据库,测试它。
  5. 如果一切正常,请将DNS A条目更改为新的主机IP - 在此情况下,1小时内所有客户端都将通过新的主机IP(转发)连接到旧实例。等待1小时。
  6. 离线:停止旧实例与维护消息
  7. 制作数据库转储和加载新的实例
  8. 重新启动新的应用程序实例
  9. 关闭转发。离线结束。
2

您使用的是git或svn等版本控制系统吗?如果是,那么你只需要将你的代码签出到新机器上。如果不是,那么我将不会做任何事情,直到你把它放到你选择的git/svn /你的版本控制软件中。

宝石应由打包商照顾。一旦源代码移出,只需在新机器的源代码目录中运行bundle install即可。

要移动数据库,您可以从头开始重建它,前提是您没有任何重要数据(rake db:create db:migrate)。否则,使用mysqldump database_name > database_name.sql将数据库转储到可以在新计算机上导入的SQL文件(cat database_name.sql | mysql new_database_name)。

相关问题