In case you don’t know, I’ve been writing a series of articles over on Simple-Talk as I learn PostgreSQL. It’s all from the point of view of a SQL Server person, expanding into a new technology. In other words, a true story. I thought I’d take a moment here on my own blog to talk about the tools I’m using and why I chose those.
Let’s establish up front, I’m lazy. Very lazy. So yeah, I’m trying to learn this new technology, but I’m going to find as many ways to use the knowledge, skills & tools I already have as I can.
Now, I first started learning PostgreSQL because I wanted to learn more about how Flyway works. Further, as I also needed to learn how to deploy databases using AWS Developer Tools, I picked my first databases as AWS RDS PostgreSQL. Yeah, OK, maybe learning three new things at the same time is not the definition of lazy. However, it was a great decision. First up, it forced me to start learning PostgreSQL. Second, I did have to learn Flyway regardless, so may as well get started with something other than SQL Server since a big part of the magic of Flyway is it’s multi-platform nature. Finally, there’s AWS RDS.
I found the AWS console to be pretty easy to understand and use. I’ve been able to create and maintain databases there easily. I really appreciate that the Platform as a Service offering means that my databases, even though they’re mostly testing & experiments, are backed up for me. Recovery within AWS is pretty easy. Setup over all was also easy. You will have to read a bit on the options so you ensure you’re using a free tier (or at least a very low cost tier). Also, there are a few challenges around security and management, but all easily overcome.
I also did some PostgreSQL work in Azure, for the same reasons as AWS RDS.
Why people aren’t using Docker & containers for most of their development, test, and learning, I’ll never understand. It changes the game. Instead of spending a ton of time learning how to install software (why?), I just grab a container & go.
This one is a no-brainer. I already have a good foundation in containers (not an expert, although I do teach an introductory class). It’s so simple to get PostgreSQL running in a container, it’s not worth talking about. However, there are challenges. Trying to learn native backup methods proved challenging working in a container. I had to do a few of those on a local instance of PostgreSQL (yeah, I did install the software too, it’s just not my go-to).
Azure Data Studio
This is one of the lazy bits. I knew that Azure Data Studio supported PostgreSQL, and frankly, I love Azure Data Studio as a development tool. It’s fast. It’s light. It’s easy to use because I’m already using it. Done.
There weren’t any major challenges here. It just worked. I recommend it. Code completion within PostgreSQL isn’t perfect, but it works.
That’s it. Those are the tools I’ve been using right along to learn PostgreSQL. I’ve tried a few others. Google Cloud Platform would probably work as my PaaS database, but I’m just not as familiar with it and didn’t have a driving force like I did AWS RDS. I’ve also been experimenting with pgAdmin. It’s nice, but I’m sticking with where I’m comfy while I learn. I’m sure there’s some other tools I should look into. Feel free to share them in the comments.