Search code examples
amazon-web-servicesdatabase-migrationamazon-neptunechange-management

AWS Neptune Change Management


we are considering using AWS Neptune as graphdb solution. I am coming from Django world so I used to use db migrations a lot. I could not find any info about how AWS Neptune does change management on DB? ie. what happens if I want to reload a backup from a month ago and there has been schema changes since then? How do we track these changes? Should we write custom scripts?


Solution

  • Unlike something like an RDBMS and some other data stores, Amazon Neptune, and many other graph dbs for that matter, are called "schemaless" meaning there is no need to explicitly define or maintain a schema. The schema is implicitly defined by the data stored in the database. In the case you mentioned, restoring a backup, there is no need for a migration/change script to be run. When you restore the backup the schema will be defined by the restored data.

    This "schemaless" nature of the database allows applications to begin adding new entity types and data properties without any sort of ETL process. However, this also means that the application does need to manage some sort of schema internally to maintain sanity over the data being stored (e.g. first_name and firstName could be used and would be separate properties.).