it lets agents drive terminal apps via pty, take screenshots, send keystrokes, and record everything as asciicast.
basically the same idea as proofshot but for tui/cli apps instead of browser ui. been using it to have agents prove their work actually when submitting prs.
great question. i am no expert on the topic, and my weekend project ended up being pretty small (a few hundred LoCs in total). I was able to get the core logic "work function" to work, but all of the stuff around it, I wrote by hand.
I'm @a8m's co-founder and also a maintainer of Atlas. I don't have an exact feature comparision but Atlas (and esp the Postgres driver) are heavily maintained with advanced features like views and materialized views (functions and procedures coming up, followed by triggers and more).
What features specifically are you missing in migra? Perhaps we can prioritize them. Also feel free to join our Discord https://discord.gg/zZ6sWVg6NT
Happy to share this announcement of the latest version of Atlas, our open-source schema management tool.
With this version, Atlas gets first-class support for SQL for defining the desired state of the database.
Think of it like "terraform apply" for your MySQL/Postgres/etc. Previously your schema needed to be define in an HCL syntax we maintain, now you can use plain ol' SQL!
Will appreciate feedback and comments!
Rotem, co-creator of Atlas
In this post, we will demonstrate how to create a basic configuration language using HCL and Go. To make this discussion entertaining, let's imagine that we are creating a new PaC (Pizza-as-Code) product that lets users define their pizza in simple HCL-based configuration files and send them as orders to their nearby pizza place.
Hey gravypod!
Thanks for writing. Indeed we built the schemaspec implementation so that it’s definitely possible to use other syntaxes to define schemas. HCL was chosen for various reasons to be first but we are planning on supporting others
Hey bitspook!
One of Atlas’s creators here.
Thanks for sharing this!
You describe the existing state well. Atlas can currently be used to perform what we call declarative database migrations.
This is great for many use cases. But it will not do for others, for a few reasons .
First, there are many ways to get from point A to point B. The classic example is a table rename. To get from the existing to the desired state, we can either ALTER TABLE or DROP and CREATE it. What did the user mean? Second, migrations are a very sensitive operation that can easily result in an outage if done wrong. Therefore, many companies check each migration into source control and have it reviewed in CR, and perform different quality and safety assessments on it.
Therefore, while “terraform for DBs” sounds great, it’s not enough. In the next versions of Atlas, we’re rolling out a different workflow that we call migration authoring or “versioned migrations” that address these issues in a very cool way that I hope many will view as useful.
Frankly, we didn't make the Terraform analogy. We didn't even start this thread, just woke up to this wonderful discussion this morning :-) With regards to our marketing material, we only state that our DDL is terraform like because it is based on HCL..
I completely hear you on Terraform and it's pains and I've had my fair share of problems with it myself! This is why our approach to building Atlas is to offer two styles of migrations: declarative migrations (which is what you're seeing now) and a more advanced workflow (which I believe most mature projects will end up using) which we call migration authoring or versioned migrations.
This second approach is similar to existing migration tools, with versioned SQL files, up/down direction, etc. In fact, it will work great out of the box with most existing migration tools (such as Flyway, Liquibase etc.) The main difference is that users will be able to use Atlas's fairly advanced migration planner and more advanced features that will be available later this year.
So indeed, we're not a terraform for X, though i'm sure that title by whoever chose it brought this topic quite a bit of attention :-)
it lets agents drive terminal apps via pty, take screenshots, send keystrokes, and record everything as asciicast.
basically the same idea as proofshot but for tui/cli apps instead of browser ui. been using it to have agents prove their work actually when submitting prs.