Open Monograph Press  3.3.0
NavigationMenusMigration.inc.php
1 <?php
2 
14 use Illuminate\Database\Migrations\Migration;
15 use Illuminate\Database\Schema\Builder;
16 use Illuminate\Database\Schema\Blueprint;
17 use Illuminate\Database\Capsule\Manager as Capsule;
18 
19 class NavigationMenusMigration extends Migration {
24  public function up() {
25  // NavigationMenus
26  Capsule::schema()->create('navigation_menus', function (Blueprint $table) {
27  $table->bigInteger('navigation_menu_id')->autoIncrement();
28  $table->bigInteger('context_id');
29  $table->string('area_name', 255)->default('')->nullable();
30  $table->string('title', 255);
31  });
32 
33  // NavigationMenuItems
34  Capsule::schema()->create('navigation_menu_items', function (Blueprint $table) {
35  $table->bigInteger('navigation_menu_item_id')->autoIncrement();
36  $table->bigInteger('context_id');
37  $table->string('path', 255)->default('')->nullable();
38  $table->string('type', 255)->default('')->nullable();
39  });
40 
41  // Locale-specific navigation menu item data
42  Capsule::schema()->create('navigation_menu_item_settings', function (Blueprint $table) {
43  $table->bigInteger('navigation_menu_item_id');
44  $table->string('locale', 14)->default('');
45  $table->string('setting_name', 255);
46  $table->longText('setting_value')->nullable();
47  $table->string('setting_type', 6);
48  $table->index(['navigation_menu_item_id'], 'navigation_menu_item_settings_navigation_menu_id');
49  $table->unique(['navigation_menu_item_id', 'locale', 'setting_name'], 'navigation_menu_item_settings_pkey');
50  });
51 
52  // NavigationMenuItemAssignments which assign menu items to a menu and describe nested menu structure.
53  Capsule::schema()->create('navigation_menu_item_assignments', function (Blueprint $table) {
54  $table->bigInteger('navigation_menu_item_assignment_id')->autoIncrement();
55  $table->bigInteger('navigation_menu_id');
56  $table->bigInteger('navigation_menu_item_id');
57  $table->bigInteger('parent_id')->nullable();
58  $table->bigInteger('seq')->default(0)->nullable();
59  });
60 
61  // Locale-specific navigation menu item assignments data
62  Capsule::schema()->create('navigation_menu_item_assignment_settings', function (Blueprint $table) {
63  $table->bigInteger('navigation_menu_item_assignment_id');
64  $table->string('locale', 14)->default('');
65  $table->string('setting_name', 255);
66  $table->text('setting_value')->nullable();
67  $table->string('setting_type', 6);
68  $table->index(['navigation_menu_item_assignment_id'], 'assignment_settings_navigation_menu_item_assignment_id');
69  $table->unique(['navigation_menu_item_assignment_id', 'locale', 'setting_name'], 'navigation_menu_item_assignment_settings_pkey');
70  });
71  }
72 
77  public function down() {
78  Capsule::schema()->drop('navigation_menu_item_assignment_settings');
79  Capsule::schema()->drop('navigation_menu_item_assignments');
80  Capsule::schema()->drop('navigation_menu_item_settings');
81  Capsule::schema()->drop('navigation_menu_items');
82  Capsule::schema()->drop('navigation_menus');
83  }
84 }
NavigationMenusMigration\down
down()
Definition: NavigationMenusMigration.inc.php:77
NavigationMenusMigration\up
up()
Definition: NavigationMenusMigration.inc.php:24
NavigationMenusMigration
Describe database table structures.
Definition: NavigationMenusMigration.inc.php:19