我的Laravel学习之路之migration Laravel自带命令行数据库创建和管理工具

来源:互联网 发布:社保政府补贴数据 编辑:程序博客网 时间:2024/05/16 10:21
migration是什么鬼,为什么不能在phpmyadmin和Navicat Premium 管理数据库有什么区别吗


下面是关于此问题的三个回答:
问题1:什么是Migration?
回答:可以将Migration看作一种数据库的VCS(Version Control System),即版本控制系统
可以通过Laravel的artisan命令快速创建或还原Migration文件,来进行数据库的构架。
问题2:为什么要用Migration?
回答:使用Migration可以有效地对数据库进行版本控制,并且遵从了Single Responsibility Principle(单一职责原则),更加方便数据库的操控。
问题3:Migration到底方便在哪里?
基本不需要写SQL代码就能简单快速地组建起数据库结构,并且可以迅速Migrate或者Rollback,实现了数据库的版本控制和管理。


migration的目录在laravel\database\migrations下边,我们可以打开其中的一个文件来看:
 public function up()    {        Schema::create('users', function (Blueprint $table) {            $table->increments('id');            $table->string('name');            $table->string('email')->unique();            $table->string('password', 60);            $table->rememberToken();            $table->timestamps();        });    }

这个文件代表生成创建表的信息,字段,类型,名称等等
如何使用,当然是使用php artisan migrate 即可生成默认的两个表,一个是users一个是password_resets
如何创建表呢,我们可以使用以下命令来创建samples_table表
php artisan make:migration create_samples_table --create=samples_table 这条命令来创建Migration文件,
Created Migration: 2017_10_08_011007_create_samples_table,其中前缀是创建该文件的日期和时间
这样会在migrations下面生成一个新的文件2017_10_08_011007_create_samples_table.php
可以看到,Laravel已经添加了三个Columns,一个是id,另外两个分别是由$table->timestamps()创建的created_at和updated_at(类型是DATETIME)。
你可以打开它,修改添加字段信息.然后执行php artisan 来执行创建数据表


关于如何增加字段使用命令:

php artisan make:migration add_into_column_to_samples --table=samlples
代码中对应的表明为samples请自行修改,然后在migration下面生成的2017_10_08_043044_add_into_column_to_samples.php文件中

在up方法中添加:$table->string('inrto'); 在down方法中添加$table->dropColumn('inrto');

然后执行php artisan migrate

请注意,使用dropColumn方法是手需要引入一个包,命令如下:composer require doctrine/dbal  如果提示全县问题,也许你需要更换普通用户操作


同时创建表和模型  php artisan make:model Article -m


算了,详细参见:http://blog.csdn.net/lgyaxx/article/details/61615351

以及5.1官网文档:https://laravel.com/docs/5.1/migrations

阅读全文
0 0
原创粉丝点击