php --laravel框架--数据库迁移

时间:2024-03-29 07:29:57

@laravel框架中的数据库迁移步骤

laravel

Laravel中通过PHP语言来定义这些接口并实现数据库架构的描述,当需要将这个数据库架构移植到所支持的数据库后端时,只需要执行这个描述文件就可以了,这样就为数据库架构的修改和维护提供了极大的方便。一个数据库迁移文件对应的是在“laravel\database\migrations\”目录下的一个带时间搓的PHP文件,迁移文件使用PHP语言来描述,即使对SQL语句不了解,一样可以实现数据库架构的设计,而文件的执行是通过artisan命令来完成的,需要注意的是,artisan命令需要在Laravel框架的根目录下执行。

#(个人理解)先创建一个文件,执行命令,自动创建数据库

1.数据库配置。要实现数据库迁移,首先需要对数据库账号信息进行配置,而对数据库账号信息的配置文件有两个,分别是“laravel\config\database.php”和“laravel.env”,其中.env文件是主配置文件,因为该文件中配置的参数会覆盖database.php中的参数,这里主要修改.env中的配置参数,主要有数据库位置、数据库名、账号名和密码,这些参数根据自己的计算机环境进行配置即可。

php --laravel框架--数据库迁移php --laravel框架--数据库迁移

2.迁移文件的建立。完成配置后,就可以创建迁移文件了,迁移文件需要存储在“laravel\database\migrations\”目录下,而文件的名字则需要以YYYY_MM_DD_HHMMSS_create_tableName_table.php形式创建,其中前面是一个UTC时间戳识别,后面tableName为数据库表的名称,当然也可以直接使用artisan命令创建迁移文件,命令为“php artisan make:migration create_tableName_table”。通过artisan命令创建的文件已经在文件中给出了迁移文件的基本结构,其中包含两个方法,分别是up()方法和down()方法,其中up()方法是执行迁移命令时创建的表结构,而down()方式是执行回滚时删除的表结构。
1.创建表
命令 php artisan make:migration create_users_table --create=users

// An highlighted block
php artisan make:migration create_users_table  --create=users

执行之后出现一下文件
前两个php文件是laravel框架默认的文件,在数据库中会默认生成两张表
php --laravel框架--数据库迁移
(3)迁移文件的设计。数据库迁移文件的设计实际上就是对数据表的操作和维护,在Laravel框架中是通过结构生成器(Schema类)来实现的,该类提供了一组与数据库无关的数据表生成方法,通过这些方法可以实现数据表的创建、删除和修改等功能。下面是一个简单的迁移文件实例。文件:laravel\database\migrations\2018_08_01_000000_create_users_table.php

打开新建文件我们会发现里面包含了两个方法up和down

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateArticlesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('articles', function (Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        }); 
    }   

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('articles');
    }   
}


	当运行迁移时,调用up 方法 
    当回滚迁移时,调用down 方法

主要修改up方法

// An highlighted block
  public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('openid',255)->default('')->comment('微信端返回的openid');
            $table->string('nickname',45)->default('')->comment('顾问昵称,一般取自微信昵称');
            $table->char('realname',20)->default('')->comment('用户真实姓名');
            $table->enum('sex',[0,1])->default(0)->comment('性别,默认女');
            $table->char('phone',13)->default('')->comment('手机号码');
            $table->string('avatar')->default('')->comment('用户头像');
            $table->timestamps();
            $table->softDeletes();
        });
    }

(4)执行数据迁移。执行数据迁移可以通过artisan命令来完成,针对上述实例,执行迁移命令实现“users”数据表的建立,而执行回滚迁移实现“users”数据表的删除。具体命令如下:

功能快捷键

	//执行迁移
	php artisan migrate 

效果:
php --laravel框架--数据库迁移
migrations表、users表、password_resets表为默认自动生成的表
php --laravel框架--数据库迁移

注意:如果报错
Laravel 5.4: Specified key was too long error
参考以下:
php --laravel框架--数据库迁移

参考链接:https://laravel-news.com/laravel-5-4-key-too-long-error

  1. php artisan migrate:rollback 执行最后一次回滚迁移
  2. php artisan migrate:refrech 重置数据库并重新运行所有迁移
  3. php artisan migrate:reset 回滚所有迁移