I think you are leaving out some information, ie possibly your have deployed your own modified build that you made from source code, possibly you have done something with the database like copy the objects to a new db instead of doing a real backup and restore. Possibly some database objects are missing or have incorrect permissions.
How the setup works:
1. It looks to see if the mp_Site table exists, if so it knows it is an upgrade not a new installation
2. It checks for the current version in mp_SchemaVersion table this info tells it which upgrade script to start with so that it only runs newer scripts. This is the step where it is going wrong so maybe the table is missing
Even on a new installation it should start with script version 2.3.4.8, not 2.2.1.9
It should never run script version 2.2.1.9 unless you are really upgrading from a version that is about 5 years old. So something is wrong about your database before it tries to upgrade. I would first look to see if the mp_SchemaVersion and mp_SchemaScriptHistory tables exist and what data is in them if they do exist.