Change record status: 
Introduced in branch: 

Both due to negative connotations of the phrase, as well as for better accuracy, "master/slave" has been replaced in the code base to "primary/replica." This pairing is used not only in Django, but also IBM Rational ClearQuest, Microsoft System Center, Engine Yard, and AWS.

Changes for site builders

Instead of specifying $databases['default']['slave'][] = $info_array; in settings.php, now you specify $databases['default']['replica'][] = $info_array;

API changes

  • 'target' => 'slave' in db_select()/queryRange()/etc. changed to 'target' => 'replica'
  • db_ignore_slave() => db_ignore_replica()
  • class SlaveDatabaseIgnoreSubscriber => class ReplicaDatabaseIgnoreSubscriber
  • "slave" key in Views options renamed to "replica"
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other updates done


rachel_norfolk’s picture

I like the change but I'm not sure about the reasoning as such.

I would much rather see the reason for this change being as positive as the actual change. Simply the fact that primary/replica describes better what is actually going on on with replication than master/slave certInly does this.

fmitchell’s picture

The original discussion, in case anyone is curious:

attiks’s picture