Q:

Why Django prefers Postgresql?

I have read from it's official document here:
https://docs.djangoproject.com/en/1.8/topics/migrations/

PostgreSQL
PostgreSQL is the most capable of all the databases here in terms of
  schema support; the only caveat is that adding columns with default
  values will cause a full rewrite of the table, for a time proportional
  to its size.
For this reason, it’s recommended you always create new columns with
  null=True, as this way they will be added immediately.

But it doesn't explain what "schema support". Why Postgresql is more capable than others(MySQL etc.) on Django?

A:

This reference is from migrations documentation. It refers to the fact that PostgreSQL is the only database backend included in Django which supports transactional DDL. That is Postgres can rollback CREATE TABLE or ALTER TABLE statements while MySQL, Oracle, and SQLite cannot.

