美文网首页
laravel 数据库迁移

laravel 数据库迁移

作者: MakingChoice | 来源:发表于2016-10-11 22:54 被阅读77次

    简要介绍一下数据库迁移,数据库迁移的目的是为了让开发能够快速共享数据库设置。下面是一些简要说明

    同其他组件一样laravel为数据库迁移也提供了命令<code>php artisan make:migration create_setting_table</code>,可以快速生成一个setting设置表,注意这里不是直接在数据库生成表,而是生成一个存储和设置数据库字段的类,需要其他的命令来生成对应的数据库表。

    下图就是在databases\migration文件夹中生成的规则

    1.png
    如果需要生成这些数据库中的table,需要在命令行中运行 <code>php artisan migrate</code>来生成数据库中表。此外还有其他操作,回滚上一次迁移<code>php artisan migrate:rollback</code>;回滚所有迁移<code>php artisan migrate:reset</code>

    下面分享一些简单的数据库设置,看看就会明白其中道理。
    class CreateSettingTable extend Migration{
              public funtion up(){
                      Schema::create('setting',function(Blueprint $table){
                                 $table->string('name',128)->primary();
                                 $table->text('value')->nullable(); 
                        })
               }
    
            public funtion down(){
                    Schema::drop('setting');
            }
    }
    

    下面是一个关于user的,比较复杂;

    class CreateUserTable extend Migration{
            publick funtion up(){
                  Schema::create('users',function(Blueprint $table){
                        $table->increments('id')->unsigned()->index();//increments代表主键、index代表基本索引、unsigned代表无符号
                        $table->string('name');//string代表VACHAR类型
                        $table->srting('password');//string代表VACHAR类型,可以通过string('name',number)来设置name的长度
                        $table->integer('age')->unsigned();//integer代表integer类型
                        $table->string('email')->unique();//unique设置唯一索引,不允许重复。
                        $talbe->string('QQ')->nullable();//允许null值
                        $table->string('weixin')->nullable();//允许null值
                        $table->string('school')->nullalbe();//允许null值
                        $table->enum('sex',array_keys(trans('global.sex')))->default('secret');//enum相当于枚举类型,global.sex 指被trans本地化后,经过array_key然后获取键值。
                        $table->enum('role',array_key(trans('global.role')))->default('person');//同上
                        $table->remember_token();//加入 remember_token 并使用 VARCHAR(100) NULL。用于自动登录
                        $table->timestamps();//加入created_at updated_at 字段
                  })
            }
    }
    
    
    

    相关文章

      网友评论

          本文标题:laravel 数据库迁移

          本文链接:https://www.haomeiwen.com/subject/njbbyttx.html