老莫的笔记本  
  
查看: 1081|回复: 0

Laravel 数据库模型与

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2019-6-5 17:58:24 | 显示全部楼层 |阅读模式
// laravel  
// 配置数据库的位置在 : .env 文件中  
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=数据库名 [无引号]
DB_USERNAME=数据库用户名 [无引号]
DB_PASSWORD=数据库密码  [无引号]



Migrations [数据库迁移:数据表的每次变动(创建、修改、删除)都对应一个迁移文件]
文件所在位置: database/migrations/

[迁移操作都是基于 Schema 门面来完成WWW\tt\vendor\laravel\framework\src\Illuminate\Database\Schema\Builder]

命令记录 :

    php artisan make:migration create_users_table --create=users  # 创建数据表迁移文件 users为表名称

    php artisan make:migration alter_admins_add_nickname --table=admins  # 更新数据表迁移文件

    前提:

        需要先通过 Composer 安装 doctrine/dbal 扩展包  composer require doctrine/dbal

    执行变更:

    php artisan migrate    执行迁移

    php artisan migrate --force  强制执行迁移

    php artisan migrate:rollback  回滚迁移 【默认会退到最后一步】

    php artisan migrate:rollback --step=5   回滚最后五条迁移

    php artisan migrate:reset       【回滚所有迁移】

    php artisan migrate:fresh       【删除所有表】

    参考文献: https://laravelacademy.org/post/9580.html#toc_9  [迁移操作命令行 与 内置函数]

  1. class AlterAdminsAddNickname extends Migration
  2. {
  3.     /**
  4.      * Run the migrations.
  5.      *
  6.      * @return void
  7.      */
  8.     public function up()
  9.     {
  10.         Schema::table('admins', function (Blueprint $table) {

  11.             // 有个小问题,所有添加索引的时候都报错 ->index() 反正是个原则 就是判断;
  12.             

  13.             // 添加一个phone 字段 长度20 允许为空的列  备注是:用户电话
  14.             $table->string('phone', 20)->after('name')->nullable()->comment('用户电话');

  15.             // 修改 name 的字段是 50个长度 ->change()
  16.             $table->string('name', 50)->change();

  17.             // 更换字段名address 为 address
  18.             $table->renameColumn('address', 'address');

  19.             // 将email 设置为 唯一索引
  20.             // $table->string('email')->unique();
  21.             
  22.             // 将 name 字段设置为普通索引
  23.             // $table->string('name')->index();

  24.             // 主键索引通过 increments 方法创建,该方法会创建一个自动增长的主键索引
  25.             // $table->increments('id');

  26.             // 创建索引的其余方式 ,这样做的一个好处是一次支持传入多个字段,从而构建混合索引
  27.             // $table->primary('id');
  28.             // $table->index('name');
  29.             // $table->unique('email');
  30.             // $table->index(['name', 'email']);
  31.             

  32.             // 移除索引
  33.             // $table->dropIndex('name');
  34.             // $table->dropUnique('email');
  35.             // $table->dropPrimary('id');

  36.             // 添加外键
  37.             // $table->foreign('user_id')->references('id')->on('users');

  38.         });
  39.     }

  40.     /**
  41.      * Reverse the migrations.
  42.      *
  43.      * @return void
  44.      */
  45.     public function down()
  46.     {
  47.         Schema::table('admins', function (Blueprint $table) {
  48.             // 删掉email字段
  49.             $table->dropColumn('email');

  50.         });
  51.     }
  52. }
复制代码

一个奇怪的现象: 所有索引 在执行数据库迁移时,都报错。 不知为何---怀疑是数据库版本问题



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表