Reputation: 18557
I want to update Laravel to the latest version 5.4.
But direct migration is not given in laravel migration guide, so first I am trying to migrate it to laravel 5.3.
My project is working on a 5.2 laravel version and trying to upgrade it.
I have updated composer.json
as guided into the documentation of laravel migration guide.
And run command composer update
on the command line.
I am getting the following error.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Loading composer repositories with package information
Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install laravel/framework v5.3.31
- Conclusion: don't install laravel/framework v5.3.30
- Conclusion: don't install laravel/framework v5.3.29
- Conclusion: don't install laravel/framework v5.3.28
- Conclusion: don't install laravel/framework v5.3.27
- Conclusion: don't install laravel/framework v5.3.26
- Conclusion: don't install laravel/framework v5.3.25
- Conclusion: don't install laravel/framework v5.3.24
- Conclusion: don't install laravel/framework v5.3.23
- Conclusion: don't install laravel/framework v5.3.22
- Conclusion: don't install laravel/framework v5.3.21
- Conclusion: don't install laravel/framework v5.3.20
- Conclusion: don't install laravel/framework v5.3.19
- Conclusion: don't install laravel/framework v5.3.18
- Conclusion: don't install laravel/framework v5.3.17
- Conclusion: don't install laravel/framework v5.3.16
- Conclusion: don't install laravel/framework v5.3.15
- Conclusion: don't install laravel/framework v5.3.14
- Conclusion: don't install laravel/framework v5.3.13
- Conclusion: don't install laravel/framework v5.3.12
- Conclusion: don't install laravel/framework v5.3.11
- Conclusion: don't install laravel/framework v5.3.10
- Conclusion: don't install laravel/framework v5.3.9
- Conclusion: don't install laravel/framework v5.3.8
- Conclusion: don't install laravel/framework v5.3.7
- Conclusion: don't install laravel/framework v5.3.6
- Conclusion: don't install laravel/framework v5.3.5
- Conclusion: don't install laravel/framework v5.3.4
- Conclusion: don't install laravel/framework v5.3.3
- Conclusion: don't install laravel/framework v5.3.2
- Conclusion: don't install laravel/framework v5.3.1
- laravelcollective/html v5.4 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.1 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.2 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.3 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.4 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.5 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.6 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.7 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- laravelcollective/html v5.4.8 requires illuminate/view 5.4.* -> satisfiable by illuminate/view[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.9].
- don't install illuminate/view v5.4.0|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.13|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.17|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.19|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.27|don't install laravel/framework v5.3.0
- don't install illuminate/view v5.4.9|don't install laravel/framework v5.3.0
- Installation request for laravel/framework 5.3.* -> satisfiable by laravel/framework[v5.3.0, v5.3.1, v5.3.10, v5.3.11, v5.3.12, v5.3.13, v5.3.14, v5.3.15, v5.3.16,
v5.3.17, v5.3.18, v5.3.19, v5.3.2, v5.3.20, v5.3.21, v5.3.22, v5.3.23, v5.3.24, v5.3.25, v5.3.26, v5.3.27, v5.3.28, v5.3.29, v5.3.3, v5.3.30, v5.3.31, v5.3.4, v5.3.5, v5.
3.6, v5.3.7, v5.3.8, v5.3.9].
- Installation request for laravelcollective/html ~5.4 -> satisfiable by laravelcollective/html[v5.4, v5.4.1, v5.4.2, v5.4.3, v5.4.4, v5.4.5, v5.4.6, v5.4.7, v5.4.8].
What extra changes do I need to make in composer.json to make the update work?
** UPDATE:**
This is composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.3.*",
"twbs/bootstrap": "dev-master",
"laravelcollective/html": "~5.4",
"kepex/laravel-crud-generator": "^0.1.4",
"watson/bootstrap-form": "^1.0",
"doctrine/dbal": "^2.5",
"intervention/image": "dev-master",
"danvuquoc/laravel-kraken": "1.*",
"barryvdh/laravel-dompdf": "0.8.*",
"barryvdh/laravel-debugbar": "^2.2",
"barryvdh/laravel-snappy": "^0.3.0",
"danielboendergaard/phantom-pdf": "^1.2",
"h4cc/wkhtmltopdf-i386": "0.12.x",
"h4cc/wkhtmltoimage-i386": "0.12.x",
"h4cc/wkhtmltopdf-amd64": "0.12.x",
"knplabs/knp-snappy": "^0.4.3",
"wemersonjanuario/wkhtmltopdf-windows": "0.12.2.3",
"tymon/jwt-auth": "0.5.*",
"zizaco/entrust": "dev-laravel-5",
"eluceo/ical": "^0.11.0",
"jurosh/pdf-merge": "dev-master",
"torann/geoip": "^1.0",
"maatwebsite/excel": "~2.1.0",
"roumen/sitemap": "dev-master",
"guzzlehttp/guzzle": "^6.2",
"rackspace/php-opencloud": "dev-master",
"ellisthedev/laravel-5-robots": "~0.1.0",
"mpdf/mpdf": "^6.1",
"matthiasmullie/minify": "^1.3",
"lullabot/amp": "^1.0.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*|3.1.*",
"symfony/dom-crawler": "2.8.*|3.0.*|3.1.*"
},
"autoload": {
"classmap": ["database"],
"files": ["app/Http/helpers.php"],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": ["tests/TestCase.php"]
},
"scripts": {
"post-root-package-install": ["php -r \"copy('.env.example', '.env');\""],
"post-create-project-cmd": ["php artisan key:generate"],
"post-install-cmd": ["Illuminate\\Foundation\\ComposerScripts::postInstall", "php artisan optimize"],
"post-update-cmd": ["Illuminate\\Foundation\\ComposerScripts::postUpdate", "php artisan optimize"]
},
"config": {
"preferred-install": "dist"
}
}
Upvotes: 4
Views: 8191
Reputation: 18557
In the end I end up using advantage of link as these people integrated everything possible. Just minor changes from our side, that too they will mention in the log when they upgrade latest version of laravel. Its paid thing, but one time investment to save time worth it.
Upvotes: 0
Reputation: 4146
I migrated from Laravel 5.2 to 5.6.3 Here are my steps:
Firstly, you need to update providers app/Providers/{EventServiceProvider, RouteServiceProvider}.php.
Their boot() methods shouldn't take arguments:
...
- public function boot(DispatcherContract $events)
+ public function boot()
{
- parent::boot($events);
+ parent::boot();
}
...
Secondly, update your composer.json. Here is my default configuration:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
"framework",
"laravel"
],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.1.3",
"fideloper/proxy": "~4.0",
"laravel/framework": "5.6.*",
"laravel/tinker": "~1.0",
"laravelcollective/html": "^5.5.0"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.1",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "~1.0",
"nunomaduro/collision": "~2.0",
"phpunit/phpunit": "~7.0",
"symfony/thanks": "^1.0",
"doctrine/dbal": "^2.5"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
Then run composer update
or php composer.phar update
Replace your App/Providers/RouteServiceProvider.php from original repository.
Move your routes from app/routes/web.php to routes/web.php (initially, you may also want to copy the routes from original Laravel)
Replace your controllers for Authentication from original Laravel repository in folder app/Http/Controllers/Auth
Comment out your old auth routes and add Auth::routes();
in web.php routes file (more about this).
Add config/hashing.php
from original repository.
Run php artisan config:cache
to reset the cache.
Finally, update your DB structure php artisan migrate --seed
and run the app php artisan serve
Upvotes: 4
Reputation: 21681
I think you need to try this:
You have to update first LaravelCollective html package as well.
In your composer.json
, replace:
"laravelcollective/html": "5.2.*"
with:
"laravelcollective/html": "5.4.*"
Upvotes: 0
Reputation: 860
You have to update first barryvdh/laravel-dompdf package.
In your composer.json change:
first change
"laravel/framework": "5.3.*"
to the previous one
and then change
from
"barryvdh/laravel-dompdf": "^0.6.1",
to
"barryvdh/laravel-dompdf": "^0.8.0",
and then hit composer update
command
and then change "laravel/framework": "5.3.*"
and again hit
`composer update`
command
Upvotes: 0