Moving the discussion to an answer.
Regarding migrations:
I work in a team of 2 developers too. What works for us is at the early stages of development (model changes a lot) each one runs its own database locally (data seeded in the initializer). Once the project is relatively stable, we deploy to a website with a SQL Azure database. Whenever the model changes, we add a migration and run it against that database. Our team, like yours is small so this works for us. If the team grows, I recommend setting up a CI server (Team City).
Regarding Database connections
We don't use the .mdf file in App_Data. Each one has a local instance of SQL server Express running in their machine. For the connection strings, we have 4 environments set up (Local, Development, Staging, Production). These are set in the web.config (you can set them up in code too it's your choice). When we ran the application, we choose the environment we want to develop against. We deploy using VS2013 to an Azure Website, each web.config is configured accordingly per environment.
We get the environment from the web.config and depending on which environment we're at, the connection string is injected into the application using an IOC container (Ninject).
<configuration>
<appSettings>
<add key="environment" value="Development"/>
</appSettings>
</configuration>
Hope this helps,