I'm just going to drop everything here as a walkthrough so that your code first and the migration goes - attack various problems that may or may not happen. Note: the first code turned out to be very reliable - and it can also be developed using live scripts - you just need to know what you are doing.
Most likely your migration and database are mostly out of sync.
Your existing migration is trying to work against an old copy of the database - with ups / downs that have been optimized for "empty db", I think.
You need to perform your Add-Migration against the copy of Db that you are attached to - this will create a “difference” and just update your Db (always make sure, back up , of course, as it may fall / change, etc. .).
Or, if possible, empty your Db and then run a new one.
Or if live Db - create migrations - and run Update-Database -Script on your dev machine - to generate full Db - or changes (all this is very rude, you need to adapt to your case). And then apply to your "live Db" by running scripts.
You can also check my previous post in sync ...
MVC3 and the first code migration - the model supporting the "blah" context has changed since the database was created
EDIT:
Also check this answer AutomaticMigrationsEnabled false or true?
And if everything is ok with your affairs, add AutomaticMigrationsEnabled = true; to you Configuration (also in the Migrations folder - created for you).
A couple of steps that I always take to clear migration:
(good for backup)
- Enable-Migrations -force (only for the first time - this removes the .cs configuration and any "seed" there!)
- AutomaticMigrationsEnabled = true;
- remove existing migrations manually from the project (\ Migrations)
- rebuild the project at this moment
- Initial migration with addition - Database update -Force -Verbose
... later (subsequent migrations):
- Add-Migration SomeOther1
- Database Update -Force -Verbose
... provided that you keep your Db in sync, that is, be careful with "moving the Db around," manually tuning, etc. (and in this case, see another post).
A couple of other things:
With PM Console ...
- select your project from the list,
- make sure that your "main exe" (calling your project / data assembly - or the same project, if the console / application) - is set as the "start" project,
- always see the console comments, as this may be an attempt to create and access another project.
Compound:
See this post of my migration does not change my table
In short, your connection is called your context + your project - unless otherwise indicated. It is extracted from your DbConfig constructor or app.config (connections). Make sure that you look at the “correct database” (that is, what you are viewing through some kind of explorer and which code you are connecting to first) there can be two different things).
Construction:
Make sure your project is installed in the “configuration” for automatic assembly - this can also be a problem.