美文网首页
[Laravel5.3教程02] 基础01 -migratio

[Laravel5.3教程02] 基础01 -migratio

作者: 7c03aed0f01f | 来源:发表于2016-11-30 14:24 被阅读34次

一、创建数据库的 migrations 文件

# 创建的文件名:create_user_table
# 数据库表名:user
php artisan make:migration create_users_table --create=users
php artisan make:migration create_role_user_table --create=role_user

二、编辑迁移结构

文件名:2014_10_12_000000_create_users_table.php
更多迁移结构的语法 请查看:
[Laravel5.3教程00] PHP Artisan 命令
Laravel 5.1 文档攻略 数据库: Migrations 数据表设计/版本管理神器

public function up(){
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('mobile',11)->unique()->comment('手机号');
        $table->string('cashNum', 60)->default('')->comment('支付账号');
        $table->string('pwd')->comment('密码');
        $table->string('tpwd')->comment('支付密码');
        $table->string('userlcon')->default('')->nullable()->comment('用户头像');
        $table->string('framName')->default('')->comment('***');
        $table->string('recommen')->default('')->comment('***');
        $table->decimal('eggCount',12,2)->default(0.00)->comment('***');
        $table->decimal('feedsCount',12,2)->default(0.00)->comment('***');
        $table->rememberToken();
        $table->timestamps();
    });
}

文件名:2015_01_15_114412_create_role_user_table.php

public function up(){
    Schema::create('role_user', function (Blueprint $table) {
        $table->increments('id')->unsigned();
        $table->integer('role_id')->unsigned()->index();// 设置int类型,禁用负值,加入基本索引
        $table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
        $table->integer('user_id')->unsigned()->index();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');// 外键约束
        $table->timestamps();
    });
}

三、执行迁移结构

php artisan migrate

四、这里遇到几个问题

  1. 创建迁移文件一定要按照 先后顺序创建,尤其是涉及索引相关的结构

我先创建的 role_user 表迁移文件,在创建的 users 。 写入数据库的时候 系统先创建的 role_user 表,直接报错,因为 role_userusers 表的外键,所以系统报错

  [Illuminate\Database\QueryException]
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table `role_user` add constraint `role_user_userid_fo
  reign` foreign key (`userId`) references `users` (`id`) on delete cascade)
  [PDOException]
  SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

解决方法:按照先后顺序创建

  1. 继续上面的问题

删除迁移文件 最好用 artisan 命令删除,我是直接删除的文件,然后遵守先后顺序创建 users 表的时候,artisan 不让我创建了

  [ErrorException]
 include(/apps/aiyouTest/vendor/composer/../../database/migrations/2017_01_11_070800_create_users_table.php): failed to open stream: No such
   file or directory

解决方法:composer dump-autoload

相关文章

网友评论

      本文标题:[Laravel5.3教程02] 基础01 -migratio

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