mite

sql schema migrations so easy you already know how to do them

what are schema migrations?


reversible (usually) + incremental changes to the schema of a database.

in their most basic form, these could just be sql files on source control with no automated way to executed them (remember that)


why would I use migrations?


keeping up with the state of database schemas gets complicated really quickly, especially once you have multiple developers + environments.

you need some kind of a tool to manage everything.

complexity


[ draw things on whiteboard ]

Existing solutions


  • word of mouth. maybe you email around some schema update sql or put it on source control. or maybe you pass around sql backups (we all hate this)

  • sql compare:  awesome tool. expensive as hell. could be simpler

  • orm specific support. eg: nHibernate, sequelize

  • specific migration frameworks (kind of like mite). a lot of these are configuration heavy, language specific, use a DSL, or a combination of all those...

why USE mite?


  • migrations are just sql. you know sql right?
  • almost no configuration. just get it pointed at your database
  • you always have an accurate representation of your schema for the version of code it corresponds to
  • the CLI is really easy to use
  • getting a new database environment takes two simple commands: 
    mite init && mite up 
  •  language agnostic. use it  in any project, with any dev stack, on, pretty much, any operating system
  • tons of the other solutions are tied to specific frameworks/languages, have clunky GUIs, or an ugly CLI. mite does none of those things...

why node?


  1. the original .net/mono implementation had cross platform issues + was a pain to distribute
  2. distribution with npm is super simple
  3. I'm way better at javascript than python
  4. Atwood's Law

shut up and show me cool things


ok.
Made with Slides.com