Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Console List Columns Laravel Package

romanzipp/laravel-console-list-columns

A small Laravel package that lets you list a database table's columns directly from the console, showing names, types, and attributes in a clean table. Handy for quickly inspecting schemas while debugging migrations or models.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy (more accurately: build vs. borrow). This package is a single Artisan command that reads information_schema and pretty-prints column metadata. That is a ~50–150 line in-house command. The decision this package actually informs is "do we spend a sprint-day writing this, or drop in a Composer dependency?" — and the honest answer is usually: borrow the idea (or vendor the file) rather than take the dependency. The 1.2.2 release improves this calculus slightly by removing phplucidframe/console-table in favor of symfony/console, which every Laravel app already ships — so the marginal dependency weight is now close to zero. It is still a 5-star, low-dependent package with a single maintainer-shaped footprint.
  • Developer-experience roadmap, not product roadmap. Nothing here touches end users. If your team tracks platform/DX work as a line item, this is a candidate for the "cheap wins" bucket — a 30-minute spike, not an epic. It should never appear in a customer-facing roadmap review.
  • Onboarding and schema archaeology on legacy apps. Its clearest use case is a PM watching a new engineer spend an afternoon discovering what columns exist on a 60-table legacy schema. A one-line "list the columns on orders" command removes a GUI client dependency and a Slack question to the DBA.
  • Incident triage and support escalation. During a data bug, "what does this table actually look like right now?" is a recurring question. Console-based introspection is useful when the responder has SSH but not TablePlus, and when a screenshot of the schema needs to go into a ticket.
  • Migration and factory authoring. Faster column/type/nullability lookups while writing migrations, factories, and seeders — modest but real time savings, and it reduces "I assumed the column was nullable" class of bugs.
  • What it does not inform: pricing, packaging, customer segmentation, API contracts, or any decision with revenue attached. If someone brings this to a prioritization meeting, the correct PM move is to redirect to the actual product question.

When to Consider This Package

Consider it when:

  • You are on a legacy Laravel version (6/7/8/9) where the framework does not yet ship php artisan db:show, db:table, or model:show. Those built-ins landed in Laravel 10.x and largely absorb this package's job.
  • Your team works console-first — SSH, Tinker, CI scripts — and has no licensed GUI DB client, or deliberately avoids one in production-adjacent environments.
  • You want it as a reference implementation: read the source, confirm the queries against MySQL/Postgres/SQLite, and vendor a tailored command into app/Console/Commands. This sidesteps the maintenance risk entirely and is the option I'd recommend most often.
  • You need scriptable, text output for docs or schema snapshots (piping to a markdown file in a repo), which GUI tools handle poorly. Note that 1.2.2 changed the rendering engine from console-table to symfony/console, so any snapshot or golden-file comparison built against pre-1.2.2 output should be re-baselined once.

Look elsewhere when:

  • You are on Laravel 10+. Use the first-party db:table <table>, db:show, and model:show commands. Zero dependency, actively maintained, better output. This alone disqualifies the package for most teams today.
  • Maintenance guarantees matter. 1.2.2 is the first release since June 2020 and it is housekeeping, not a revival: no roadmap, no issue triage, no visible community, 5 stars, 0 dependents. Read it as "someone still cares a little," not as "this is now supported." Treat any adoption as "we now own this code."
  • Compatibility is unverified on your stack. The console-table → symfony/console swap removes one version-alignment headache (it now tracks the Symfony major that your Laravel version already pins), but a 2020-vintage introspection command still predates a lot of Laravel and PHP churn, and historically this class of package leaned on doctrine/dbal, which has its own alignment pain. Budget a compatibility spike or don't bother.
  • A GUI client or IDE tooling already exists. TablePlus, DataGrip, or barryvdh/laravel-ide-helper (which gives you column docblocks in your models, arguably more useful) cover the same ground with better ergonomics.
  • You need real schema modeling — ERDs, index analysis, drift detection, multi-connection comparison. This command does none of that; reach for schema:dump, a migration-diff tool, or a proper database tool.

How to Pitch It (Stakeholders)

To executives: This is an internal developer convenience tool, not a product capability. Cost of adoption is effectively zero (MIT, no vendor relationship, and as of 1.2.2 no exotic transitive dependencies either), and so is the upside — a marginal reduction in the time engineers spend asking "what's in this table?" It carries no revenue, no customer impact, and no strategic weight. Recommendation for the roadmap: do not allocate product capacity. If engineering wants it, let it ride as a self-serve DX nicety inside an existing sprint rather than as a planned initiative. The recent patch is a maintenance signal, not a reason to re-plan.

To engineering: The idea is worth ten minutes; the dependency is probably worth skipping. On Laravel 10+ the framework already gives you db:table, db:show, and model:show — use those and close the ticket. If you're pinned to an older major, or you specifically want console-only schema output for docs and triage, either vendor the command into app/Console/Commands (recommended — 1.2.2 dropping console-table for symfony/console is a good sign and makes vendoring cleaner, but it's still a one-off housekeeping release after five years of silence, with no dependents and no maintainer bandwidth to speak of) or read the source and write your own against information_schema. Either way, verify it works on your engine (MySQL vs. Postgres vs. SQLite) and on your symfony/console major before it becomes load-bearing, re-check any output snapshots if you were already pinned to a pre-1.2.2 version, and don't let it into a scripted pipeline without someone owning it.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console