My Experience with Laravel Shift
Jun 24, 2016  

I've upgraded Laravel a bunch of times for many of my apps. It can be a serious pain in the ass sometimes. Months ago, I remember hearing the buzz about Laravel Shift. The cost of a shift from Laravel 5.0 to 5.1 was only $9 and I thought it would be fun to try, eh. I don't think I even read the FAQ past the first answer since I'm a horrible person.

Getting Started

First, you have to sign in via Github, Bitbucket, or Gitlab. At that time you authorize Shift to access your public and private repos for that providor. Then, you choose a repo and branch you would like to upgrade. After payment, you'll recieve a pull request on a newly created branch. It happened by the time I had tabbed back over to Github in Chrome, but results may vary.

The PR itself contains a barrage of commits like Adopt PSR-2 coding style and it also gives you a list of manual changes you'll have to make in the comments. I found this style easier to follow than the typical upgrade guide in the Laravel docs.

Checkout the Results

I had a copy of my blog already up and running on Valet, but when I switched over to the new branch, composer install didn't go well even after a fetch. Instead, I cloned a new copy of the repo to checkout the laravel-5.1-shift branch.

$ git clone

$ cd mackhankins

$ git checkout laravel-5.1-shift

$ composer install

The process is by no means perfect. For example, my config/app.php looked a little funky.


return [

    'env' => env('APP_ENV', 'production'),

After fixing a few small errors, I committed my changes and merged the shift PR into master.


Anyone who has done these upgrades manually really needs to try this to fully appreciate it, but it's a product for everyone using Laravel. I enjoyed the experience so much I shifted 5.1 to 5.2 the next day.

After Thoughts

  • Read the FAQ before using Shift.
  • I spent most of my time upgrading packages. The checkout step is crucial.
  • I wish the selection screen on the Shift app pulled my repos and branches automatically.