LARAVEL: How to rename a table column with migrations preserving data

Is it possible to alter your data structure without losing any data?

Gabriel Guerra
Mar 10 · 2 min read

Yes, you can! And it's pretty straightforward.

Credits and image licensing

As stated in Laravel manual:

To rename a column, you may use the renameColumn method on the Schema builder. Before renaming a column, be sure to add the doctrine/dbal dependency to your composer.json file:

You can do this following a few steps:

1) Check if you have the Doctrine DBAL library installed.
If you don’t know how to do this, just check at your composer.json file.
There should be a line like “doctrine/dbal”: “v2.4.2” (maybe in a different version), as shown in the code down below:

If the line it's absent, insert “doctrine/dbal”: “v2.4.2”, go to terminal and point it to your App directory.

Now, type "composer update" and wait for composer to finish all operations.

In the case you don't know, Composer is a dependency manager for PHP, used by Laravel.

2) Create a new migration typing in terminal:

3) Now in your recent created migration you’ll insert:

We’re almost done! Now all you have to do is run your migrations like you always do:

That's it!

Happy coding :)