Vim-Tips.com 数据库迁移记

前一篇Blog,为了为数据库迁移预热,专门用云平台Nitrous.IO搭建了测试环境,部署Mongoid+MongoDB的环境,一切还算顺利。赶上中秋节几天阴雨,在家里无聊,正好可以开始把线上Vim-Tips.com的数据库给迁移到MongoDB来。

说干就干,此时不做,更待何时?在线上环境的VPS配置好了Mongoid和MongoDB环境,接下来就是正式的迁移了。

迁移大致分为两步:

  1. 程序的改动
  2. 数据的迁移

第一步还算顺利,照着之前的步骤很快搞定。 第二步数据的迁移还遇到了一些难题,如何把线上环境MySQL的数据导入到MongoDB呢?

去Google搜索了一圈,看来比较快捷的解决方案大致如下:

  1. 把数据从MySQL先导出成为CSV文件
  2. 把生成好的csv文件,用mongoimport导入到MongoDB

网上有各种教程,详细步骤不再累述。 前面的过程都颇为顺利,正当程序上线的时候,发现Web UI的界面全部乱掉了。我明明记得是预编译了各种JS和CSS文件的,百思不得其解。 后来搜索到一篇帖子,发现Mongoid的官网指引还是有些坑爹……

按照mongoid的要求,在application.rb中做了修改,注释rails/all

1
2
3
4
5
#require 'rails/all'
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"

这个修改导致处理assets pipeine的sprockets没有被加载,因此,解决方法是在后面追加一句

1
require 'sprockets/railtie'

问题解决,现在Vim-Tips.com的后台已经顺利迁移到MongoDB了,可喜可贺……

支持原创技术分享,据说打赏我的人,都找到了女朋友!