Django Migrations - what benefits do they bring?
<p>I am pretty sure that <a href="https://docs.djangoproject.com/en/1.10/topics/migrations/" rel="nofollow">Django Migrations</a> bring many benefits to the Django platform. I am just having a hard time identifying those benefits.</p>

<p>Maybe someone could explain to me in what circumstances Django Migrations can be beneficial. In what way does it benefit the work of a software developer?</p>

<p>I could not find that kind of information in the documentation. Maybe it is so obvious that there is no need.</p>

<p>Anyway, thanks in advance for any hint.</p>

<p><strong>Edit:</strong> My apologies for not being accurate enough. The way I wrote above I appear to imply that Django Migrations do not do anything valuable, which is not what I intended.</p>

<p>I know that Django Migrations are meant to keep the database in sync with my Models. What I find annoying is that, sometimes, things go wrong and I have to reset the migrations manually. Still, after your replies I believe I have a better understanding why the Django Migrations are the way they are.</p>

<p>You make some changes to your database, you:</p>

<ul>
<li>Change the default value of a field</li>
<li>You update all user entries so that their "name" field begins with a capital letter</li>
<li>You remove a model altogether</li>
</ul>

<p>So now you need to modify your database schema, get to it!</p>

<p>Chances are you haven't bothered to learn how to write SQL yet so you need to do that first... oh and then its sensitive data you're dealing with so you need to make sure you don't make any mistakes when your deleting that table (Bobby tables much?).. </p>

<p>This doesn't sound fun at all, and its error prone. Especially as you hire new people and then you need to make sure they don't delete EvilCorps data by mistake.</p>

<p>So, instead you opt for the framework that abstracts all these operations into a language that you write anyway, that you store within your source control, tagged to the developer that committed them.</p>

<p>So whats the benefit to the developer? Time and abstraction - the benefits of which I hope are obvious.</p>

python django