diff --git a/src/Database/Migrations/2020-12-28-223112_create_auth_tables.php b/src/Database/Migrations/2020-12-28-223112_create_auth_tables.php index 80691cd9b..deb4570ae 100644 --- a/src/Database/Migrations/2020-12-28-223112_create_auth_tables.php +++ b/src/Database/Migrations/2020-12-28-223112_create_auth_tables.php @@ -15,13 +15,16 @@ class CreateAuthTables extends Migration */ private array $tables; + private array $attributes; + public function __construct(?Forge $forge = null) { parent::__construct($forge); /** @var Auth $authConfig */ - $authConfig = config('Auth'); - $this->tables = $authConfig->tables; + $authConfig = config('Auth'); + $this->tables = $authConfig->tables; + $this->attributes = ($this->db->getPlatform() === 'MySQLi') ? ['ENGINE' => 'InnoDB'] : []; } public function up(): void @@ -40,7 +43,7 @@ public function up(): void ]); $this->forge->addPrimaryKey('id'); $this->forge->addUniqueKey('username'); - $this->forge->createTable($this->tables['users']); + $this->createTable($this->tables['users']); /* * Auth Identities Table @@ -64,7 +67,7 @@ public function up(): void $this->forge->addUniqueKey(['type', 'secret']); $this->forge->addKey('user_id'); $this->forge->addForeignKey('user_id', $this->tables['users'], 'id', '', 'CASCADE'); - $this->forge->createTable($this->tables['identities']); + $this->createTable($this->tables['identities']); /** * Auth Login Attempts Table @@ -85,7 +88,7 @@ public function up(): void $this->forge->addKey(['id_type', 'identifier']); $this->forge->addKey('user_id'); // NOTE: Do NOT delete the user_id or identifier when the user is deleted for security audits - $this->forge->createTable($this->tables['logins']); + $this->createTable($this->tables['logins']); /* * Auth Token Login Attempts Table @@ -105,7 +108,7 @@ public function up(): void $this->forge->addKey(['id_type', 'identifier']); $this->forge->addKey('user_id'); // NOTE: Do NOT delete the user_id or identifier when the user is deleted for security audits - $this->forge->createTable($this->tables['token_logins']); + $this->createTable($this->tables['token_logins']); /* * Auth Remember Tokens (remember-me) Table @@ -123,7 +126,7 @@ public function up(): void $this->forge->addPrimaryKey('id'); $this->forge->addUniqueKey('selector'); $this->forge->addForeignKey('user_id', $this->tables['users'], 'id', '', 'CASCADE'); - $this->forge->createTable($this->tables['remember_tokens']); + $this->createTable($this->tables['remember_tokens']); // Groups Users Table $this->forge->addField([ @@ -134,7 +137,7 @@ public function up(): void ]); $this->forge->addPrimaryKey('id'); $this->forge->addForeignKey('user_id', $this->tables['users'], 'id', '', 'CASCADE'); - $this->forge->createTable($this->tables['groups_users']); + $this->createTable($this->tables['groups_users']); // Users Permissions Table $this->forge->addField([ @@ -145,7 +148,7 @@ public function up(): void ]); $this->forge->addPrimaryKey('id'); $this->forge->addForeignKey('user_id', $this->tables['users'], 'id', '', 'CASCADE'); - $this->forge->createTable($this->tables['permissions_users']); + $this->createTable($this->tables['permissions_users']); } // -------------------------------------------------------------------- @@ -164,4 +167,9 @@ public function down(): void $this->db->enableForeignKeyChecks(); } + + private function createTable(string $tableName): void + { + $this->forge->createTable($tableName, false, $this->attributes); + } }