Building dbRosetta Using AI: Part 1 of Many

Like many of you, over the last couple of years, I’ve been using AI, or, well, let’s just name it appropriately, Large Language Models (LLM), as a part of my job. I’ve also used it in my hobby. With it, I’ve generated snippets of code, tested data conversions, even built a small database for a presentation. However, to date, I haven’t tried doing everything through the LLM. Now, I’m going to.

I have an idea for a very simple application. I’m calling it dbRosetta. The concept is pretty simple. Different databases have differing names for similar concepts. For example, in SQL Server, what we call a ‘stored procedure’ is just almost identical to what in PostgreSQL is called a ‘function’. There are similarities and differences. dbRosetta, like the Rosetta Stone, will act as a translation engine of sorts. Input a term or a concept from one database, get the matching term or concept for another.

That’s it. Simple. Nothing crazy. However, I’m going to build the whole thing using LLMs. Let’s talk about my ground rules and introduce you to the LLM and how I’ll use it.

The Rules

Pretty simple really. I’ll show you the prompts I use and the output we get from it. I’m going to post the whole thing to my public GitHub. The app will live at scarydba.com for the moment (I have the most control there). The database will be PostgreSQL, running on Azure Flex DB. I’m not sure what the code will be. I’ll work that out with the AI.

The LLM (and yeah, I’m going to just switch back forth between AI & LLM, bear with me) I’ll primarily use for the design is CoPilot. I’ll also be using GitHub CoPilot within vsCode to assist with code generation, code completion, validation and testing. I’m using the paid version here. Why this one? ‘Cause work has already bought me a license. Here’s our first prompt & response:

Prompt Response
I’ll be providing design specs and more, but initially, I’d like you to introduce yourself and your role in the project. Keep it to about three sentences since it’ll be part of a larger article. I am Copilot, an AI development partner here to help design, build, and document dbRosetta. I’ll assist with architecture and schema design, generate production-ready SQL and application code, and craft reusable prompts and CI/CD workflows. I’ll also review drafts, refine session abstracts, and help translate your design specs into tested, deployable artifacts.

I’ll generally follow this type of layout, depending on the response. Some will be broken apart more just to make formatting code, stuff like that, simpler. I probably won’t post every single prompt. I’m also going to have the LLM generate some posts to social media to help promote this project.

I don’t have an immediate plan to turn this into a presentation, despite what CoPilot said there about session abstracts. However, if I do, I’ll be writing the abstract, just like I’m writing all this blog post myself.

Other than that, I’m going to try to do all the work through CoPilot, doing as little additional work as possible. If it gets into hallucinations or goes down a rabbit hole, I’ll intervene as best I’m able and readjust things from there. Fair enough?

All code will be under the Apache-2.0 license for the moment. I will absolutely call out anywhere in these articles where AI is generating text or code. Otherwise, it’s all me. Same thing in any of the documentation within the project. I’ll separate my own input from that of the AI.

Here’s the current tool list:

  • Azure Database for PostgreSQL Flexible Server
  • CoPilot
  • GitHub CoPilot
  • vsCode
  • Microsoft PostgreSQL vsCode Extension
  • Flyway

Conclusion

Basically, watch this space. I’m getting started on setting everything up now. I’ll be posting updates as I go along.

Prompt Response
I’ve written out the introduction article in the window currently open in the browser. Do you have any input to what I’ve written so far? It’s OK to simply say that it looks good too. Looks good — clear voice and a strong practical focus. Tighten the opening to state the problem dbRosetta solves in one sentence (who, pain, outcome), then follow with a one-line TL;DR that tells readers what they’ll get from the series. Add a short example or screenshot (CLI command or sample migration snippet) early to show immediate value and anchor technical readers. Include a prominent link to the GitHub repo and CONTRIBUTING.md so readers can jump straight into code and contributions. Finally, add a short “What’s next in this series” paragraph to set expectations and drive return visits.

It’s already stuck on this whole CONTRIBUTING thing. No one but me and it are contributing for the moment. The next article will be about the full set up. The AI and I are going to discuss how we get started, prompt outlines, and a few more things like that. I’m also going to ask it if we should do code first, or design a database first. You know where I fall on this, but let’s find out what AI thinks.

Tools in this post

Redgate Flyway

Bring stability and speed to database deployments

Find out more