4c985aac7e
Adds stored revision counts to pages and the revisions themselves. Closes #321
44 lines
1.2 KiB
PHP
44 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');
|
|
});
|
|
}
|
|
}
|