I was not able to find a direct Magento CLI command so far, I could work around with a Bash and Magerun:
$ THEME_ID="$(n98-magerun2.phar dev:theme:list --format=csv \
| grep 'Vendor/code' | cut -d, -f1)" \
; test -n "${THEME_ID}" \
&& n98-magerun2.phar config:set design/theme/theme_id "${THEME_ID}"
This sequence sets the configuration path for the theme_id to the one of the named theme (by it's code, which is "Vendor/code
" in the example).
In case the operation fails, this has a non-zero status.
Process to update Magento 2.1 to 2.2:
For a full step by step instruction please refer to Upgrade Magento from 2.1 to 2.2.1 with sample data using composer (I created a new question because this one is specificly about "update vs. fresh install")
Answering your questions:
Does the difference in both composer.json could create issues in future development ?
Let's look at the diff:
"version": "2.2.0",
is the project version, which does not have any significance except that it tells you from which version you created the project. To avoid confusion I usually change that to the current Magento version during upgrade.
"require-dev": {
[...]
}
is relevant if you use any of the dev tools listed there. For example, if you run PHPUnit tests, you should update the PHPUnit version accordingly, as the new test suite is updated for PHPUnit 6 and does not work anymore on PHPUnit 4
"exclude-from-classmap": [
"**/dev/**",
"**/update/**",
"**/Test/**"
]
is an optimization for the autoloader. It makes sense to copy it to your composer.json but nothing should break if you don't.
"minimum-stability": "stable",
is the default stability requirement for dependencies. It looks like you changed it to alpha
for some reason, so that's up to you.
Is it advisable to upgrade or install fresh copy in case there is no real data except sample data ?
In that case, and if you did not install any extensions, it's easier to install a fresh copy (i.e. overwrite composer.json and run composer update
) because you can be sure that you don't miss anything and there are less manual steps.
Is it advisable to upgrade or install fresh copy in case there is live data available ?
With only live data it's the same as above, but if you installed any extensions, I'd rather update composer.json manually with changes from the latest version.
Best Answer