记录数据库状态的改变,可把数据库的状态回退回去。
场景:需要显示出管理员更新资料的时间,在admin表中添加一个updated_at字段记录这个时间。顺手created_at字段记录管理员的注册时间。
编写数据库迁移的前进的方法
命令行下输入命令行
-> php artisan make:migrationalter_admin_table_add_created_at_updated_at_field
在databases/ migrations/…alter_admin_table_add_created_at_updated_at_field文件中编写前进迁移:
public function up()
{
// 在这里写数据库前进的状态, 操作admin表添加created_at, updated_at字段
Schema::table('admin', function(Blueprint $table) {
// 在这里对admin表进行操作
// $table->timestamps();
$table->timestamp('created_at')->nullable();
$table->timestamp('updated_at')->nullable();
});
}
命令行执行数据库迁移前进
-> php artisan migrate
查看数据表新增的字段,表示执行成功
说明:mysql的时间戳的数据类型:timestamp,表示时间戳,这种格式的时间戳:2017-06-28 09:48:14
created_at timestampnull,
updated_at timestampnull,
后退
在databases/ migrations/…alter_admin_table_add_created_at_updated_at_field文件中编写后退迁移:
publicfunction down()
{
// 把admin表的created_at, updated_at删除
Schema::table('admin',function(Blueprint $table) {
$table->dropColumn('created_at');
$table->dropColumn('updated_at');
});
}
命令行执行数据库迁移前进
-> php artisan rollback
执行后的效果如果created_at, updated_at字段被删除了表示成功
数据库迁移的其他命令
migrate //执行所有迁移文件的up方法
migrate:reset //执行所有迁移文件的down方法
migrate:rollback //执行最后一次迁移文件的down方法
migrate:status //查看数据库迁移文件的执行情况
migrate:install //创建记录数据库迁移文件的执行情况的表
migrate:refresh //先把执行所有的迁移文件的down方法,再执行所有的迁移文件的up方法 结果就是内容清空
migrate:status //查看数据库迁移文件的执行情况