In your database, what is the greatest value of the sql_patch_ref field in the si_sql_patchmanager dataset. If the dataset is not empty, the greatest value should be 319. This is the greatest patch number applied in master_2019.2 and master_2020 begins it patch settings from there, starting at 320. If this dataset is empty, you are doing a fresh install an the essential data adds patches 319 through 326 (or greater when future patches added) to the dataset.
Things to also check:
1) In config/custom.config.ini, make sure the database settings are correct. I suspect they are because the code is acting as though it can access the database.
2) Check the tmp/log/php.log file and see if there is an error being reported. If you are unsure of the error info being from your last test, delete the content and save the empty file. Then access SI again to recheck the content of this file.
3) Delete the tmp/log/si.log file if there is one. Then in the config/custom.config.ini file set the loggerLevel to DEBUG. Run your access again and see what gets logged.
You can zip either the php.log or si.log file to this forum if you want me to look at them. Although, you should sanitize the confidential data in either file. There probably isn’t any in the php.log, but you will see database names and passwords and possibly email names and passwords in the sl.log file. Just replace these with x’s as nobody but you needs to see them.