Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We do not use migrations with JSON.

Adding and removing happens on the application layer with using Option[_] monads in the data model. Add a field means add Option[_], removing a field means making e.g. String an Option[String] - or fill with default values on read. If we drop a field over time we ignore it during writes.

   case class Person(name:String)
adding a job field after some time becomes

   case class Person(name:String, job:Option[String])
and application code needs to deal with it.

Works for us, compared to my previous jobs where we used SQL and migrations.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: