12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- use Illuminate\Database\Migrations\Migration;
- use Illuminate\Database\Schema\Blueprint;
- class EntrustSetupTables extends Migration
- {
- /**
- * Run the migrations.
- *
- * @return void
- */
- public function up()
- {
- // Create table for storing roles
- if (!Schema::hasTable('roles')){
- Schema::create('roles', function (Blueprint $table) {
- $table->increments('id');
- $table->string('name')->unique();
- $table->string('display_name')->nullable();
- $table->string('description')->nullable();
- $table->timestamps();
- });
- }
- // Create table for associating roles to users (Many-to-Many)
- if (!Schema::hasTable('role_user')){
- Schema::create('role_user', function (Blueprint $table) {
- $table->integer('user_id')->unsigned();
- $table->integer('role_id')->unsigned();
- $table->foreign('user_id')->references('id')->on('users')
- ->onUpdate('cascade')->onDelete('cascade');
- $table->foreign('role_id')->references('id')->on('roles')
- ->onUpdate('cascade')->onDelete('cascade');
- $table->primary(['user_id', 'role_id']);
- });
- }
- // Create table for storing permissions
- if (!Schema::hasTable('permissions')){
- Schema::create('permissions', function (Blueprint $table) {
- $table->increments('id');
- $table->string('name')->unique();
- $table->string('display_name')->nullable();
- $table->string('description')->nullable();
- $table->timestamps();
- });
- }
- // Create table for associating permissions to roles (Many-to-Many)
- if (!Schema::hasTable('permission_role')){
- Schema::create('permission_role', function (Blueprint $table) {
- $table->integer('permission_id')->unsigned();
- $table->integer('role_id')->unsigned();
- $table->foreign('permission_id')->references('id')->on('permissions')
- ->onUpdate('cascade')->onDelete('cascade');
- $table->foreign('role_id')->references('id')->on('roles')
- ->onUpdate('cascade')->onDelete('cascade');
- $table->primary(['permission_id', 'role_id']);
- });
- }
- }
- /**
- * Reverse the migrations.
- *
- * @return void
- */
- public function down()
- {
- Schema::drop('permission_role');
- Schema::drop('permissions');
- Schema::drop('role_user');
- Schema::drop('roles');
- }
- }
|