Docker can auto-assign a high-numbered non-colliding port but its not predictable, and so it would be a pain to managed saved database connections. My teams run dozens of Laravel projects, and I was growing tired of keeping an agreed upon list of database ports so that we could run multiple projects and connect to their DBs without having any port collisions. Since TablePlus seemed to support url-style arguments for some of what Caleb had done, I figured it was possible, but found it to be undocumented. I have come to rely on this visual cue to know whether I have a local or production connection open. I really really wanted to achieve the “color coding” and “environment tagging” open shell-opened TablePlus windows. However, I wanted to solve for two more things: Turns out someone already provided the baseline version of that on the Gist. So, with that restriction in mind, Caleb’s artisan db:open wouldn’t quite work, but an equivalent shell function would. We use the in-container PHP binaries for anything involving PHP work. This means, in short, that the PHP we have installed on our macs, if it even actually is installed, isn’t guaranteed to be a good enough environment to invoke any given Laravel project’s artisan command. What is “more”įor starters, my teams all exclusively use Docker and Docker Compose for local development. This very interesting, but I wanted more, as evidenced by my comment that remains on the Gist to this day. artisan db:openĪ few months back, Caleb Porzio tweeted a Gist about how to use the open command on MacOS and a custom Artisan command to read your Laravel DB config and create a proper mysql:// link that would cause TablePlus to open your local dev database without having to set up a connection. Some of them still insist on using DataGrip, which I cannot understand. I’ve happily bought a license for it and for anyone on my team who wants to use it. Yes, it costs money, but often the good things in life do. It’s modern, kept up to date, supports every database you’d ever credibly want to connect to, and pretty to look at. I learned that this thing even existed from Taylor Otwell on Twitter. I used that for many years, but alas, it has become somewhat abandonware.Įnter TablePlus. Navicat still exists, but for whatever reason I transitioned to Sequel Pro (“Pancakes”). When I later moved to MacOS, they had a version there too, though it never really felt as polished as the Windows version.
Navicat was an actual good SQL GUI (MySQL specifically) that worked on Windows. I spent probably about half of my professional career as a hardcore Navicat user.