Gerhard
๐ค SpeakerAppearances Over Time
Podcast Appearances
I would call it a CLI utility. It's like a make. It just improves on make, basically. If you've used make, that's what a command runner, some would say. Right.
I would call it a CLI utility. It's like a make. It just improves on make, basically. If you've used make, that's what a command runner, some would say. Right.
The idea is that we wrap a bunch of commands that you would need to run locally. So for example, installing the Neon CLI so that you can control Neon. By the way, there's two. You can do it via NPM, or you can go and download the binary. The binary, the version, it's a slightly different one. So there's some inconsistencies in the CLI binary from Neon. But this basically handles all of that.
The idea is that we wrap a bunch of commands that you would need to run locally. So for example, installing the Neon CLI so that you can control Neon. By the way, there's two. You can do it via NPM, or you can go and download the binary. The binary, the version, it's a slightly different one. So there's some inconsistencies in the CLI binary from Neon. But this basically handles all of that.
And what I thought would be easy, like I thought this change would be easy, but actually there were like quite a few rabbit holes that I had to go down on. One, for example, was how to download in the format which is compressed, right? Because you don't want to download many gigabytes locally. So how do you compress it automatically? And then how do you handle extensions that exist on Neon?
And what I thought would be easy, like I thought this change would be easy, but actually there were like quite a few rabbit holes that I had to go down on. One, for example, was how to download in the format which is compressed, right? Because you don't want to download many gigabytes locally. So how do you compress it automatically? And then how do you handle extensions that exist on Neon?
They're installed on Neon, but you don't have locally in your Postgres database. So there was that as well. So I had to uninstall an extension, which is giving us metrics that you can do via SQL queries. So there are like a few things like that that I had to go through. But still, what it means is that this command just restored devdb from prod. That's exactly how we call it.
They're installed on Neon, but you don't have locally in your Postgres database. So there was that as well. So I had to uninstall an extension, which is giving us metrics that you can do via SQL queries. So there are like a few things like that that I had to go through. But still, what it means is that this command just restored devdb from prod. That's exactly how we call it.
And you can look at the pull request. There's even a video which just shows how it works. It wraps all that complexity, like all that know-how. You have to run this command, and you have to pass this value. And the other thing is the credentials, they're pulled just in time from the one password vault. You don't have to remember them. And it orchestrates all of that.
And you can look at the pull request. There's even a video which just shows how it works. It wraps all that complexity, like all that know-how. You have to run this command, and you have to pass this value. And the other thing is the credentials, they're pulled just in time from the one password vault. You don't have to remember them. And it orchestrates all of that.
So the integration, I was really happy with it, how it worked. And it feels like an easy thing to wrap your head around. There's nothing complex about what's like, obviously there are a couple of niggles to sort out, but you don't see them when you use it. And you can even like see the commands before they run. You can copy paste the commands. So everything runs locally.
So the integration, I was really happy with it, how it worked. And it feels like an easy thing to wrap your head around. There's nothing complex about what's like, obviously there are a couple of niggles to sort out, but you don't see them when you use it. And you can even like see the commands before they run. You can copy paste the commands. So everything runs locally.
And I think this was the hard part before because when we were using Dagger for this, that was running in containers, but you don't use containers. So we had to make that big change so that you would have this nice local experience. Everything runs again. It doesn't need Docker. It doesn't need anything like that. It doesn't need Dagger. It's just commands, installing binaries, things like that.
And I think this was the hard part before because when we were using Dagger for this, that was running in containers, but you don't use containers. So we had to make that big change so that you would have this nice local experience. Everything runs again. It doesn't need Docker. It doesn't need anything like that. It doesn't need Dagger. It's just commands, installing binaries, things like that.
So I'm glad that you tried it. I'm glad that it's working. Do you see yourself using this?
So I'm glad that you tried it. I'm glad that it's working. Do you see yourself using this?
That's a huge score.
That's a huge score.
The next one was enabling team members. The next pull request, pull request 534, was basically building on top of this. And it just enables team members to run dev with a NeonDB branch. So this was a rework of what we had before. That's why it removed more lines than it added, but basically built on top of the same just approach. Did you try this command, Jared? No. No. OK.
The next one was enabling team members. The next pull request, pull request 534, was basically building on top of this. And it just enables team members to run dev with a NeonDB branch. So this was a rework of what we had before. That's why it removed more lines than it added, but basically built on top of the same just approach. Did you try this command, Jared? No. No. OK.