To determine whether your current Magento 2 instance needs upgrade scripts to run you can use the following CLI command:
$ bin/magento setup:db:status
The output can either be something like this (if upgrade is needed):
The module code base doesn't match the DB schema and data.
or like this (if no upgrade is needed):
All modules are up to date.
Unfortunately, at date, the Magento 2 CLI doesn’t return different exit codes in case of different outcomes, that’s something that can be useful especially if you use some CI or deploy tools.
Thus I wrote a simple bash script that converts different text outputs in different exit codes:
#!/bin/bash
# use --no-ansi to avoid color characters
message=$(bin/magento setup:db:status --no-ansi)
if [[ ${message:0:3} == "All" ]];
then
exit 0 # 0 not required being default exit code; used for clarity
else
exit 1
fi
You can also download it from here.
Enjoy!
Photo credits: Christiaan Colen - Creative Commons license