Weave Code
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

Migrations Laravel Package

cycle/migrations

Cycle Database Migrations provides structured, versioned database schema changes for Cycle ORM/DBAL. Configure a migrations directory and table, run pending migrations programmatically, and optionally include vendor migrations or generate migration files during schema compilation.

View on GitHub
Deep Wiki
Context7

Automatic migration generation

Frequently asked questions about Migrations
Can cycle/migrations replace Laravel’s built-in migrations for schema management?
Yes, but with trade-offs. It excels at auto-generating migrations for rapid schema changes, reducing manual SQL work. However, it lacks Laravel’s deep integration with Eloquent models and may not handle complex rollbacks (e.g., cascading foreign keys) as gracefully. Use it for new projects or non-critical tables, then manually refine migrations for production.
How do I install cycle/migrations in a Laravel 10.x project?
Run `composer require cycle/migrations` in your project root. Ensure PHP 8.1+ is installed and your `config/database.php` uses supported drivers (MySQL, PostgreSQL, SQLite). No Laravel-specific setup is needed beyond requiring the package—it integrates via Doctrine DBAL under the hood.
Will auto-generated migrations conflict with existing Laravel migrations?
Potential conflicts arise if you mix auto-generated and manual migrations. Use branch-specific prefixes (e.g., `2025_07_13_123456_create_users_table_feat_x`) to avoid merge hell. Test rollbacks in staging first, as auto-generated migrations may not account for custom logic in existing files.
Does cycle/migrations support Laravel’s `migrate:fresh` or `migrate:reset` workflows?
Yes, but with limitations. Auto-generated migrations work with Laravel’s core migration commands, including `migrate:fresh`. However, destructive rollbacks (e.g., dropping tables) may fail if the package misinterprets schema dependencies. Test thoroughly in CI/CD pipelines before relying on it for production resets.
How does cycle/migrations handle JSON columns, enums, or custom collations in MySQL/PostgreSQL?
It supports standard data types but may misinterpret non-standard SQL features like custom collations or complex JSON schemas. Validate auto-generated migrations against a staging database snapshot. For edge cases, manually edit the generated files or configure custom type mappings in the package’s settings.
Can I use cycle/migrations alongside Laravel Scout, Nova, or Jetstream?
Absolutely. The package is designed for Laravel’s ecosystem and works seamlessly with Scout (for search indexes), Nova (UI-driven schema changes), and Jetstream (auth tables). Use it to auto-generate migrations for Nova customizations or Jetstream’s team features, then review them before merging.
What’s the best way to test auto-generated migrations before deploying to production?
Run migrations in a CI/CD pipeline against a fresh database snapshot using `php artisan migrate:fresh --env=testing`. Add PHPUnit tests to verify rollback logic for critical tables. For production, enforce a manual review step—treat auto-generated migrations as drafts until validated.
Does cycle/migrations work with Laravel Forge or Envoyer for deployments?
Yes, but requires configuration. Use Forge’s database hooks to run `migrate` commands post-deploy, or integrate Envoyer’s task scheduler to execute migrations during zero-downtime deployments. Ensure migration files are version-controlled and tested in staging before production.
Are there alternatives to cycle/migrations for Laravel auto-migrations?
For Laravel-specific tools, consider **Spatie’s Laravel Migrations Generator** (more Eloquent-focused) or **Laravel Zero** (for CLI-driven workflows). If you’re open to non-Laravel tools, **Flyway** or **Liquibase** offer robust migration management but require more setup. Cycle/migrations stands out for its Cycle ORM integration and Doctrine DBAL compatibility.
How do I customize cycle/migrations to handle non-standard table/column names?
Use the package’s configuration options to map custom naming conventions (e.g., snake_case to camelCase). For complex schemas, extend the generator by overriding its default type mappings or creating a custom adapter. Document your overrides in the project’s migration guide to ensure consistency across the team.
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky