我想在Laravel中更改我的两个表名,所以我必须手动更改表名,或者可以通过迁移进行更改。
btqmn9zl1#
来自文档laravel.com/docs/5.1/migrations#renaming-and-dropping-tables要更改表名,可以执行以下操作:
Schema::rename($currentTableName, $newTableName);
可以使用drop或dropIfExists方法删除现有表:
drop
dropIfExists
Schema::drop('users'); Schema::dropIfExists('users');
只要将其添加到迁移中,它就应该工作。
rqqzpn5f2#
您可以这样重命名表
Schema::rename('old_table', 'new_table');
但是如果您有foreign keys、indexes和unique-s,请小心。
foreign keys
indexes
unique-s
重命名后将无法删除它们,就像这样
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'); });
gr8qqesn3#
首先,使用CLI命令创建迁移:
php artisan make:migration rename_table
现在,在新迁移类的up方法中,使用rename方法更改表名:
Schema::rename('old_table_name', 'new_table_name');
接下来,执行迁移命令:
php artisan migrate
i7uq4tfw4#
要重命名现有数据库表,请使用rename方法:
Schema::rename($from, $to);
要删除现有表,可以使用drop或dropIfExists方法:
niwlg2el5#
首先,在终端中运行以下命令,创建迁移文件以重命名表:
php artisan make:migration rename_old_name_to_new_name_table
那么在up方法中,你应该有这样的:
public function up() { Schema::rename('old_table_name', 'new_table_name'); }
那么在down方法中,如果你想恢复以前所做的更改,你应该有这个:
public function down() { Schema::rename('new_table_name', 'old_table_name'); }
5条答案
按热度按时间btqmn9zl1#
来自文档laravel.com/docs/5.1/migrations#renaming-and-dropping-tables
要更改表名,可以执行以下操作:
可以使用
drop
或dropIfExists
方法删除现有表:只要将其添加到迁移中,它就应该工作。
rqqzpn5f2#
您可以这样重命名表
但是如果您有
foreign keys
、indexes
和unique-s
,请小心。重命名后将无法删除它们,就像这样
因为它们将具有较旧名称,且这些名称中包含表名。
因此,我建议先删除
foreign keys
和其他东西gr8qqesn3#
首先,使用CLI命令创建迁移:
现在,在新迁移类的up方法中,使用rename方法更改表名:
接下来,执行迁移命令:
i7uq4tfw4#
要重命名现有数据库表,请使用rename方法:
要删除现有表,可以使用drop或
dropIfExists
方法:niwlg2el5#
首先,在终端中运行以下命令,创建迁移文件以重命名表:
那么在up方法中,你应该有这样的:
那么在down方法中,如果你想恢复以前所做的更改,你应该有这个: