g4t/schema-designer
g4t/schema-designer helps Laravel developers design and manage database schemas with a clean, expressive API for tables, columns, indexes, and relationships. Generate migrations, evolve structures safely, and keep schema definitions readable and maintainable.
This is the initial 0.0.1 release, and the release notes contain no feature description beyond a changelog link. Treat this as a "discover the surface area yourself" package until a README/CHANGELOG fills in the details.
Minimal onboarding:
Install and inspect before wiring anything up.
composer require hussein4alaa/schema-designer:^0.0.1
php artisan list # look for schema-designer:* commands
php artisan vendor:publish --all # capture config, migrations, assets, views
Diff what gets published (especially config and any migrations) so you understand what the package expects to own versus what it touches in your app.
Read the service provider first. In a 0.0.1 package, src/*ServiceProvider.php is the most reliable documentation: it tells you the config keys, registered routes, view namespace, and any published assets. That is your "where to look first."
Check the routes/UI entry point. Most schema-designer style packages expose either a route (e.g. /schema-designer) or a panel/page. Run php artisan route:list | grep -i schema to find it, then open it in a local environment.
First use case: design a single, throwaway table (e.g. posts with title, body, published_at) and exercise the export/generate path end to end — generate the migration, inspect it, run it against a scratch SQLite/MySQL database. Do this before pointing it at a real project so you learn its output style.
Pin the version. In composer.json use an exact or tight constraint ("hussein4alaa/schema-designer": "0.0.1") until the API stabilises. A 0.0.x package is explicitly telling you the interface will move.
Because the package is pre-1.0 and undocumented in the release, adopt patterns that isolate it from your application code.
Prototype-then-hand-off workflow (recommended default).
Keep it out of production.
require-dev, or guard any UI route behind app()->isLocal() in a service provider.composer install --no-dev).Designer as documentation, not runtime.
Integration with existing apps.
config/database.php and, if the package supports it, a matching config entry, so imports/exports can't touch your primary data.id(), timestamps(), foreignId()->constrained(), index naming, and column ordering will almost certainly differ from your house style.Team workflow.
Extension points to watch for.
0.0.1 means unstable API. Expect breaking changes in 0.0.x releases (SemVer permits it). Pin exactly, and read the diff before every bump.php artisan list.nullable()/default handling on columns;down() methods actually reversing what up() does;unsigned, index length limits). Test generation against the driver you actually deploy on.vendor asset path producing a blank UI. Check the browser console and php artisan vendor:publish tags.php artisan config:clear when debugging "my config change isn't taking effect" — standard Laravel trap, but especially confusing when a package's defaults are unclear.APP_DEBUG=true, tail storage/logs/laravel.log, and if the UI is Vue/Livewire-based, watch the network tab for failing JSON endpoints. The package's own routes/controllers are the fastest way to learn its data model.vendor/. If you must patch vendor code, fork the package or use a Composer patch plugin (cweagans/composer-patches) so the fix survives composer update.0.0.1, the README and issues on GitHub will evolve faster than tagged releases; subscribe to releases and check open issues before adopting it in anything long-lived.How can I help you explore Laravel packages today?