Django database routers for multiple databases

4285
0

Database routers direct queries to specific databases. I implement db_for_read(), db_for_write(), allow_relation(), and allow_migrate() methods. This enables read replicas, sharding by model, or separating analytics data. The router checks model labels or app names to route appropriately. For read replicas, I return a random replica in db_for_read() for load balancing. Migrations respect router rules via allow_migrate(). I configure databases in settings and list routers in DATABASE_ROUTERS. This scales Django beyond single-database limitations without changing application code.