处理数据库迁移
处理关系型数据库的变更需要特别注意。
关系型数据库既存储数据又存储数据结构。升级数据库与升级程序相比有一些其他的挑战。一般来说,当升级一个程序的二进制文件时,我们停止应用程序,再升级,然后再启动它。我们并不太在意应用的状态,那是在程序之外处理的。
当升级数据库时,我们需要考虑状态。因为一个数据库几乎没有什么逻辑和结构,但是有许多的状态。
为了描述一个数据库的结构变更,我们发出一条命令来改变结构。
数据库结构变更前后,在数据库里需要能够查看到各自的版本。我们怎么来维护数据库的版本呢?