• Migrations based deployments are based on tracking each change to a database in a separate script and then executing each script, in order, on your production database. This is hard to do, requires discipline, and is what most people find difficult to do. Scripts get quite numerous, ordering is hard, and deployments become scary and largely unsuccessful without a lot of care. The scripts require tweaks and fixes to work efficiently, and you need smart DBAs and developers.

    What we do are migrations, but they are incremental migrations. Each database developer manages their own deployment script and attaches it to the TFS ticket.

    Doing a schema compare between development and production, and then generating a difference script; that's what's scarry to me.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho