I want to change my two table name in the Laravel, so do I have to manually change the table name or it can be possible through migration.
To change a table name, you can do this: Schema::rename($currentTableName, $newTableName); You can use the drop or dropIfExists methods to remove an existing table: Schema::drop('users'); Schema::dropIfExists('users');
Yes, you can name them however you want, but they will run in alphabetical order (which is why laravel timestamps them). Also you can change a migrations name after the fact (you've already run the migration).
To change a table name, you can do this:
Schema::rename($currentTableName, $newTableName);
You can use the drop
or dropIfExists
methods to remove an existing table:
Schema::drop('users'); Schema::dropIfExists('users');
Just add that to a migration and it should work.
You can rename table like that
Schema::rename('old_table', 'new_table');
BUT be careful if you have foreign keys
, indexes
and unique-s
.
you will not be able to deleted them after renaming, like thiat
Schema::table('new_table', function (Blueprint $table) { $table->dropForeign(['transaction_id']); });
because they will have old names and these names have table name in them.
Thus, I recommend deleting foreign keys
and other stuff first
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'); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With