You could also opt to do this in a 2 step solution. First add the attributes to your generalization object and you build microflows that migrate your data from the specializations to the generalization. When finished you remove the objects all together and then you do another deployment.
Pro's: No database interaction needed at all, you have more controll of your data.
Con's: takes longer.
In addition to Pieter' answer:
Note that copying attributes from child to parent is not enough. By removing the child domain object all parents will be removed too. So you have to create whole new records in the parent table. Unfortunately you can't bypass this behavior.
On a old database I would just create a form with all the data you want to export (including the unique field of the parent so you can make a reference when doing a import again) and do a Excel of csv export.
Then just use this file to do an Excel import again on the new model. This way you can set everything right with microflows when doing the import and make sure that the database is consisten again.
Regards,
Ronald