Evolutionary Database Design, GraphQL, APIs, and Database Schema Migrations : Part 1

Evolutionary Database Design

  • It synchronizes and provides better integration for those responsible for management of the database(s), likely the Database Administrators (DBAs) in enterprises, to work more concisely and effectively with those responsible for application development against the database(s).
  • With almost all databases, developers each get their own database or at least database model mocks to develop against.
  • The database schema itself is versioned, providing a way to accurately and safely iterate during application and database development or refactoring.
  • As with code of the application, the migrations for the databases are managed in the same or parallel repositories, thus version controlled. Keeping a synchronized versioning across the application and database for deployment and in some cases rolling back to previous versions.
  • As refactoring, iterative development, or other mutation of the code and database occur automation should be applied to manage these changes moving forward and for rolling back. As I’ve often paraphrased; “manually doing this is ok, do twice and ponder automation, do thrice and it’s time to automate.”
  • Managing multiple versions of databases for developers, production, etc.
  • Shipping changes with application through automation and related efforts.
  • Using multiple applications with a database, or multiple databases with an application, or multiple databases with multiple applications interlined across each other.

My 2 Cents on Evolutionary Database Design

GraphQL and APIs

What’s Next: Database Schema Migrations

References

  • Evolutionary Database Design
  • Database Schema Migrations & Metadata Migrations

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Hasura

Hasura

⚡️ Instant realtime GraphQL APIs! Connect Hasura to your database & data sources (GraphQL, REST & 3rd party API) and get a unified data access layer instantly.