1: <?php
2:
3: use Illuminate\Database\Migrations\Migration;
4: use Illuminate\Database\Schema\Blueprint;
5: use Illuminate\Database\Capsule\Manager as Capsule;
6:
7: class CreateContactsFulltextIndexes extends Migration
8: {
9: /**
10: * Run the migrations.
11: *
12: * @return void
13: */
14: public function up()
15: {
16: $prefix = Capsule::connection()->getTablePrefix();
17:
18: Capsule::schema()->table('contacts', function (Blueprint $table) use ($prefix) {
19: $table->index('Storage');
20: $table->index('Frequency');
21:
22: Capsule::statement(
23: "CREATE FULLTEXT INDEX contacts_fullname_index ON {$prefix}contacts (FullName)"
24: );
25: Capsule::statement(
26: "CREATE FULLTEXT INDEX contacts_viewemail_index ON {$prefix}contacts (ViewEmail)"
27: );
28: Capsule::statement(
29: "CREATE FULLTEXT INDEX contacts_personalemail_index ON {$prefix}contacts (PersonalEmail)"
30: );
31: Capsule::statement(
32: "CREATE FULLTEXT INDEX contacts_businessemail_index ON {$prefix}contacts (BusinessEmail)"
33: );
34: Capsule::statement(
35: "CREATE FULLTEXT INDEX contacts_businesscompany_index ON {$prefix}contacts (BusinessCompany)"
36: );
37: Capsule::statement(
38: "CREATE FULLTEXT INDEX contacts_otheremail_index ON {$prefix}contacts (OtherEmail)"
39: );
40: });
41:
42: Capsule::schema()->table('contacts_groups', function (Blueprint $table) use ($prefix) {
43: Capsule::statement(
44: "CREATE FULLTEXT INDEX contacts_groups_name_index ON {$prefix}contacts_groups (Name)"
45: );
46: });
47: }
48:
49: /**
50: * Reverse the migrations.
51: *
52: * @return void
53: */
54: public function down()
55: {
56: Capsule::schema()->table('contacts', function (Blueprint $table) {
57: $table->dropIndex(['Storage']);
58: $table->dropIndex(['Frequency']);
59: $table->dropIndex(['FullName']);
60: $table->dropIndex(['PersonalEmail']);
61: $table->dropIndex(['ViewEmail']);
62: $table->dropIndex(['BusinessEmail']);
63: $table->dropIndex(['BusinessCompany']);
64: $table->dropIndex(['OtherEmail']);
65: });
66:
67: Capsule::schema()->table('contacts_groups', function (Blueprint $table) {
68: $table->dropIndex(['Name']);
69: });
70: }
71: }
72: