web-dev-qa-db-fra.com

Laravel Migration pour changer le nom de la table

Je veux changer le nom de mes deux tables dans Laravel, je dois donc modifier manuellement le nom de la table ou cela peut être possible par la migration.

30
HKumar

Tu peux le faire:

Schema::rename($currentTableName, $newTableName);

Pour supprimer une table existante, vous pouvez utiliser les méthodes drop ou dropIfExists:

Schema::drop('users');

Schema::dropIfExists('users');

Ajoutez simplement cela à une migration et cela devrait fonctionner.

63
Gaz_Edge

Pour renommer une table de base de données existante, utilisez la méthode rename:

Schema::rename($from, $to);

Pour supprimer une table existante, vous pouvez utiliser les méthodes drop ou dropIfExists:

Schema::drop('users');

Schema::dropIfExists('users');
7
Nikunj K.

vous pouvez renommer la table 

Schema::rename('old_table', 'new_table');

mais faites attention si vous avez foreign keys, indexes et unique-s.

ils ne seront pas supprimés après cela avec un simple 

Schema::table('new_table', function (Blueprint $table) {
   $table->dropForeign(['transaction_id']);
 });

Ainsi, je recommande de supprimer d'abord foreign keys et d'autres choses

 Schema::table('old_table', function (Blueprint $table) {
    $table->dropForeign(['transaction_id']);
 });

 Schema::rename('old_table', 'new_table');

 Schema::table('new_table', function (Blueprint $table) {
    $table->foreign('transaction_id')->references('id')->on('transactions');
 });
1
Yevgeniy Afanasyev