45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | use Illuminate\Support\Facades\Schema; | ||
|  | use Illuminate\Database\Schema\Blueprint; | ||
|  | use Illuminate\Database\Migrations\Migration; | ||
|  | 
 | ||
|  | class AddRevisionCounts extends Migration | ||
|  | { | ||
|  |     /** | ||
|  |      * Run the migrations. | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function up() | ||
|  |     { | ||
|  |         Schema::table('pages', function (Blueprint $table) { | ||
|  |             $table->integer('revision_count'); | ||
|  |         }); | ||
|  |         Schema::table('page_revisions', function (Blueprint $table) { | ||
|  |             $table->integer('revision_number'); | ||
|  |             $table->index('revision_number'); | ||
|  |         }); | ||
|  | 
 | ||
|  |         // Update revision count
 | ||
|  |         $pTable = DB::getTablePrefix() . 'pages'; | ||
|  |         $rTable = DB::getTablePrefix() . 'page_revisions'; | ||
|  |         DB::statement("UPDATE ${pTable} SET ${pTable}.revision_count=(SELECT count(*) FROM ${rTable} WHERE ${rTable}.page_id=${pTable}.id)"); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Reverse the migrations. | ||
|  |      * | ||
|  |      * @return void | ||
|  |      */ | ||
|  |     public function down() | ||
|  |     { | ||
|  |         Schema::table('pages', function (Blueprint $table) { | ||
|  |             $table->dropColumn('revision_count'); | ||
|  |         }); | ||
|  |         Schema::table('page_revisions', function (Blueprint $table) { | ||
|  |             $table->dropColumn('revision_number'); | ||
|  |         }); | ||
|  |     } | ||
|  | } |