作为一名优秀的程序员,除了编写大量的程序外,创建大量的数据库也是在所难免的。在过去的几年中,笔者曾经创建和管理了大量的mysql数据库,在这个过程中曾使用各种工具来进行管理,以便使它的过程更简单,例如首选的图形化管理工具phpmyadmin,以及基于命令行的mysql clent,它们都非常好用。但是,在笔者内心身处始终觉得,我们是一名程序员,而不是一名数据库管理员,总感觉编程和数据库管理之间有些跨越。为什么不用与编程相同的方式来管理数据库结构呢?自从开始使用rails,终于找到了答案。通过rails的功能,可以使用程序员的方式来管理mysql数据库了。
在rails中,当创建一个叫contact的model时,同时一个名为contacts的数据表将会被创建。因此,对数据表contacts的操作可以转换成对模型contact操作,可以访问它的属性。而很多的新手习惯使用一些框架什么的来操作数据表,其实,可以通过rails本身提供的功能就可以操作数据表了。这样的功能就是migrations功能。
migrations有点像活动记录(active record,一个对象,它包装数据库表或视图中的某一行,封装数据库访问,并在这些数据上增加了领域逻辑),可以通过migrations进行程序形式的管理数据表,即可以创建、修改、删除表格,而且语法很简单。更重要的是,migrations提供了一个构建的控制器。