Clearly, this depends on what kind of migrations you will be doing (will be). In my use case, I finished creating shema and limited the user to the fact that the migration uses the permissions below.
GRANT ALTER, INSERT, SELECT, DELETE, UPDATE, REFERENCES ON SCHEMA::schema_name TO migration_user GRANT CREATE TABLE TO migration_user
source share