Refactoring and Evolving Schemas
This chapter will spend some time discussing what makes a good schema and approaches to take if you need to refactor or change your schema. We will explore what and how entities can change in a graph database. This will then lead us to why you need to consider evolving schemas. Here, the focus will be on making your schema bulletproof when it comes to its evolution.
Following on from this, we will present a use case of Twitter circles, which will look at setting up your interface between Neo4j and Python (this is something we have extensively covered in other chapters), adding constraints to the Cypher queries we will write to build the graph data model in Neo4j, and some considerations you need to make pre-schema change concerning node and edgelist relationships. Then, we will change the schema with our hypothetical needs, without disrupting a live service. Finally, we will reflect on why the design of evolving schemas is pivotal for successful...