我想在Laravel中更改我的两个表名,所以我必须手动更改表名,或者可以通过迁移来实现。
答案 0 :(得分:72)
要更改表名,您可以执行以下操作:
Schema::rename($currentTableName, $newTableName);
您可以使用drop
或dropIfExists
方法删除现有表格:
Schema::drop('users');
Schema::dropIfExists('users');
只需将其添加到迁移中即可。
答案 1 :(得分:8)
要重命名现有数据库表,请使用重命名方法:
Schema::rename($from, $to);
要删除现有表格,您可以使用drop或dropIfExists
方法:
Schema::drop('users');
Schema::dropIfExists('users');
答案 2 :(得分:2)
可以像
重命名表Schema::rename('old_table', 'new_table');
但要小心,如果您有foreign keys
,indexes
和unique-s
。
您将无法重命名之后能删除它们,就像thiat
Schema::table('new_table', function (Blueprint $table) {
$table->dropForeign(['transaction_id']);
});
,因为他们将有旧名称和这些名字在他们拥有的表名。
因此,我建议删除foreign keys
和其他东西第一
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');
});
答案 3 :(得分:1)
首先,使用CLI命令创建迁移:
php artisan make:migration rename_table
现在,在新迁移类的up方法中,使用重命名方法更改表名称:
Schema::rename('old_table_name', 'new_table_name');
接下来,执行迁移命令:
php artisan migrate