# Rethinking the limits on relational databases

DevFeed: [Rethinking the limits on relational databases](<https://devfeed.tech/articles/rethinking-the-limits-on-relational-databases-41158.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2014/01/24/Rethinking-the-limits-on-relational-databases/>)

Author: Map

Published: 2014-01-24T20:55:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [migration](<https://devfeed.tech/topics/migration.md>), [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [couchdb](<https://devfeed.tech/topics/couchdb.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [JSON](<https://devfeed.tech/topics/json.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Django](<https://devfeed.tech/topics/django.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [couchdb](<https://devfeed.tech/tags/couchdb.md>), [databases](<https://devfeed.tech/tags/databases.md>), [django](<https://devfeed.tech/tags/django.md>), [json](<https://devfeed.tech/tags/json.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [orm](<https://devfeed.tech/tags/orm.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [rails](<https://devfeed.tech/tags/rails.md>), [relational-databases](<https://devfeed.tech/tags/relational-databases.md>)

## AI overview

This opinion argues that useful ideas associated with schema-less databases could be applied to relational databases. It focuses on reducing migration friction through frameworks or ORMs and on supporting document-like JSON storage in relational systems.

## Source excerpt

Theres a lot of back and forth on NoSQL databases. The unfortunate part with all the back and forth and unclear definitions of NoSQL is that many of the valuable learnings are lost. This post isn't about the differences in NoSQL definitions, but rather some of the huge benefits that do exist in whats often grouped into the schema-less world that could easily be applied to the relational world. Forget migrations Perhaps the best thing about the idea of a schemaless database is that you can just push code and it works. Almost exactly five years ago Heroku shipped git push heroku master letting you simply push code from git and it just work. CouchDB and MongoDB have done similar for databases... you don't have to run CREATE TABLE or ALTER TABLE migrations before working with your database. There's something wonderful about just building and shipping your application without worrying about migrations. This is often viewed as a limitation of relational databases. Yet it doesn't really have to. You see even in schema-less database the relationships are still there, its just you're managing it at the application level. There's no reason higher level frameworks or ORMs couldn't handle the migration process. As it is today the process of adding a column to a relational database is quite straightforward in a sense where it doesn't introduce downtime and is capable of letting the developer still move quickly its just not automatically baked in. # Assuming a column thats referenced doesn't exist # Automatically execute relevant bits in your ORM # This isn't code meant for you to run ALTER TABLE foo ADD COLUMN bar varchar(255); # This is near instant # Set your default value in your ORM UPDATE TABLE foo SET bar = 'DEFAULT VALUE' WHERE bar IS NULL; ALTER TABLE foo ALTER COLUMN bar NOT NULL; Having Rails/Django/(Framework of your choice) automatically notice the need for a column to exist and make appropriate modifications you could work with it the same way you would managing a doc