Hello World! Introducing DatabaseCI
tl;dr: We got funding to create DatabaseCI, a SaaS database management tool around
migra itself will continue to be full-featured open source software. Book a demo or email [email protected] to find out more.
Around four years ago, I wrote the first code for an open source project called
A technical itch had built up so much I just had to scratch it - I'd been working in various places as a software developer and data engineer, and noticed a common problem: managing database structure was really hard. The tools were very bad.
Changing things around within a database was a slow, boring, error-prone process. What I wanted was a "diff" tool for databases, where one database could be compared with another, and the changes needed to move between them would be autogenerated.
It seemed to work - and has since grown into a fairly widely used tool.
A little while back development slowed down a little.
migra was always a labour of love, and life gets in the way of maintaining software in your spare time. It was frustrating to not be able to squash every bug and add every cool feature requested.
Interviewing with Y Combinator
I'd thought about some ways to support further development of
migra and make it financially sustainable, but hadn't settled on anything concrete.
But then I noticed that Y Combinator were running a fully remote batch (due to COVID-19) for their next intake - without the hurdle of travelling to the US from Australia, there was little downside in applying.
Somewhat unexpectedly, they emailed to say I'd made their interview round. As somebody with little experience of the startup world, the interview format seemed crazy - effectively a ten minute Zoom call to decide yes or no on a $150k USD investment. And due to timezones, all the available interview slots were in the middle of the night in Melbourne.
Soon after the interview Y Combinator got back to me with a "no" decision - they liked
migra and the idea of a product around it, but I hadn't built anything yet or really fleshed out my plans, so it was too early for them to commit to anything - fair enough.
Think globally, apply locally
While that was temporarily disappointing, it was also encouraging - so I fleshed out my plans a bit more, and applied to the Melbourne intake of Startmate, which is essentially Australia's Y Combinator.
The application and interview process for Startmate were a little less compressed - two rounds of longer-format interviews instead of one very short one. Being local there were also no timezones to deal with.
Once again I was skeptical of my chances - like Y Combinator, Startmate gets hundreds of applications each intake, and few are accepted. So I was somewhat surprised when they called to tell me I'd made it!
Along with investment, Startmate surrounds you with a pretty amazing people who have done it all before - advisors who've founded unicorn companies, successful investors, and subject matter experts. Plus there's a cohort of fellow startup founders in the same boat as you, supporting each other.
Being surrounded by such smart, ambitious (and super nice) people has been pretty humbling.
What is DatabaseCI exactly? How will this affect
DatabaseCI is take the principles of continuous integration and applies them to database management.
We have three main features on our roadmap. We hope to tackle these in order, and thus are focussed primarily on the first one:
Staging databases: Anonymized development and staging databases so that your software can get tested against realistic data before hitting production. Configurable subsetting so that you don't need to clone all of your multi-terabyte production database to get the benefits.
Managing migrations/structure changes - Instead of writing eg Rails migrations, you'll be able to push a schema declaratively - DatabaseCI will figure out the rest, and all you need to do is review and approve the changes. When you push to master, the changes will be applied.
Combining miration automation with anonymized staging databases allows full analysis of pending migrations for any performance/data issues on a realistic dataset.
Instant aggregations - Managing aggregation/summary tables is hard. We're building a solution for instant aggregations that will deploy and maintain summary tables and manage all the necessary infrastructure (triggers, stored procs, views) to keep it updated with perfect correctness.
DatabaseCI is a hybrid between SaaS and local install - the interface is hosted, but database connections and credentials stay within your own infrastructure via an agent - this means you never need to share your credentials with us.
migra will remain open source as it always has been - and get more attention than ever as we continue to develop it alongside DatabaseCI.
Email [email protected] if you'd like to talk more about what we're building.