创建了新的 migration 以后,我们可以执行一下 migrate ... 先查看一下应用的数据库 .. 使用一下 app_development 这个数据库 .. 它是我的应用在开发环境下使用的数据库 ...
SHOW TABLES;
现在里面什么也没有 ... 回到项目的根目录 ... 执行一下
rails db:migrate
这样会运行之前没有运行过的 migration .. 这里会提示正在运行的 Migration ... 然后会输出执行的一些操作 .. 我们这个 migration 只能输出一个 hello ~ ,它还不能做其它的事情 ..
完成以后我们可能再执行这个 db:migrate 命令 .. 这次没什么提示 .. 因为 Rails 会跟踪 migration 的执行状态,已经执行过的就不会再执行它了 .. 查看一下 migration 的状态 ...
rails db:migrate:status
执行过的 Migration 的状态是 up ... 后面是它的 ID 号,也就是文件名里的那个时间部分 .. 接着是它的名字 ...
再回到数据库的控制台 .. 再查看一下数据表 ... 这里会多出两个表 .. 我们先查看一下 schema_migrations 这个表里的东西 ...
SELECT * FROM `schema_migrations`
这个表只有一个 version 栏 .. 现在它里面有一条记录 .. 这条记录的 version 的值就是刚才我们运行的那个 migration 文件名里面的时间部分 ...