首页 > 开发 > PHP > 正文

Laravel 的数据库迁移的方法

2024-05-04 22:46:19
字体:
来源:转载
供稿:网友

本文介绍了Laravel 的数据库迁移的方法,分享给大家,具体如下:

生成迁移

--table 和 --create 选项可用来指定数据表的名称,或是该迁移被执行时会创建的新数据表。这些选项需在预生成迁移文件时填入指定的数据表:

php artisan make:migration create_users_tablephp artisan make:migration create_users_table --create=usersphp artisan make:migration add_votes_to_users_table --table=users

添加字段

/database/migrations/2017_07_30_133748_create_users_table.php

<?phpuse Illuminate/Support/Facades/Schema;use Illuminate/Database/Schema/Blueprint;use Illuminate/Database/Migrations/Migration;class CreateUsersTable extends Migration{  /**   * 运行数据库迁移   *   * @return void   */  public function up()  {    //      Schema::create('users',function (Blueprint $table){        $table->increments('id')->comment('递增ID');        $table->string('email',60)->comment('会员Email');        $table->string('phone',20)->comment('会员手机号');        $table->string('username',60)->comment('用户名');        $table->string('password',32)->comment('用户密码');        $table->char('rank',10)->comment('会员等级');        $table->unsignedSmallInteger('sex')->comment('性别;0保密;1男;2女');        $table->unsignedSmallInteger('status')->comment('用户状态');        $table->ipAddress('last_ip')->default('0.0.0.0')->comment('最后一次登录IP');        $table->timeTz('last_login')->comment('最后一次登录时间');        $table->timestamps();      });  }  /**   * 回滚数据库迁移   *   * @return void   */  public function down()  {    //    Schema::drop('users');  }}

要创建一张新的数据表,可以使用 Schema facade 的 create 方法。create 方法接收两个参数:第一个参数为数据表的名称,第二个参数为一个 闭包 ,此闭包会接收一个用于定义新数据表的 Blueprint 对象

你可以方便地使用 hasTable 和 hasColumn 方法来检查数据表或字段是否存在:

if (Schema::hasTable('users')) {  //}if (Schema::hasColumn('users', 'email')) {  //}

如果你想要在一个非默认的数据库连接中进行数据库结构操作,可以使用 connection 方法:

Schema::connection('foo')->create('users', function (Blueprint $table) {  $table->increments('id');});

你可以在数据库结构构造器上设置 engine 属性来设置数据表的存储引擎:

Schema::create('users', function (Blueprint $table) {  $table->engine = 'InnoDB';  $table->increments('id');});

重命名与删除数据表

Schema::rename($from, $to);//重命名//删除已存在的数据表Schema::drop('users');Schema::dropIfExists('users');            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表