{"id":42472434,"url":"https://github.com/vardumper/ibexaautomaticmigrationsbundle","last_synced_at":"2026-04-01T23:03:56.354Z","repository":{"id":332740694,"uuid":"1120501028","full_name":"vardumper/IbexaAutomaticMigrationsBundle","owner":"vardumper","description":"This Bundle eliminates the need to manually create migration files for Ibexa DXP on the command line. When configurations change, it auto-generates the respective migrations. Supports kaliop, tanoconsulting and Ibexa enterprise edition migrations.","archived":false,"fork":false,"pushed_at":"2026-01-15T10:16:28.000Z","size":229,"stargazers_count":4,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-15T15:32:50.376Z","etag":null,"topics":["ibexa","ibexa-bundle","ibexa-platform","ibexa-platform-bundle"],"latest_commit_sha":null,"homepage":"https://github.com/vardumper/IbexaAutomaticMigrationsBundle","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vardumper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["vardumper"],"buy_me_a_coffee":"vardumper","custom":["https://paypal.me/vardumper"]}},"created_at":"2025-12-21T11:02:51.000Z","updated_at":"2026-01-15T10:30:24.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vardumper/IbexaAutomaticMigrationsBundle","commit_stats":null,"previous_names":["vardumper/ibexaautomaticmigrationsbundle"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/vardumper/IbexaAutomaticMigrationsBundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vardumper%2FIbexaAutomaticMigrationsBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vardumper%2FIbexaAutomaticMigrationsBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vardumper%2FIbexaAutomaticMigrationsBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vardumper%2FIbexaAutomaticMigrationsBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vardumper","download_url":"https://codeload.github.com/vardumper/IbexaAutomaticMigrationsBundle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vardumper%2FIbexaAutomaticMigrationsBundle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28844011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-28T07:39:25.367Z","status":"ssl_error","status_checked_at":"2026-01-28T07:39:24.487Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ibexa","ibexa-bundle","ibexa-platform","ibexa-platform-bundle"],"created_at":"2026-01-28T10:04:40.899Z","updated_at":"2026-04-01T23:03:56.343Z","avatar_url":"https://github.com/vardumper.png","language":"PHP","funding_links":["https://github.com/sponsors/vardumper","https://buymeacoffee.com/vardumper","https://paypal.me/vardumper"],"categories":[],"sub_categories":[],"readme":"\u003ctable align=\"center\" style=\"border-collapse:collapse !important; border:none !important;\"\u003e\n  \u003ctr style=\"border:0px none; border-top: 0px none !important;\"\u003e\n    \u003ctd align=\"center\" valign=\"middle\" style=\"padding:0 1rem; border:none !important;\"\u003e\n      \u003ca href=\"https://ibexa.co\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://vardumper.github.io/extended-htmldocument/logo-ibexa.svg\" style=\"display:block; height:75px; width:auto; max-width:300px;\" alt=\"Ibexa Logo\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" valign=\"middle\" style=\"padding:0 1rem; border:none !important;\"\u003e\n      \u003ca href=\"https://www.php.net/manual/de/class.dom-htmldocument.php\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://vardumper.github.io/extended-htmldocument/data-migration.png\" style=\"display:block; height:95px; width:auto; max-width:220px;\" alt=\"Database Migrations Icon\" /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ch1 align=\"center\"\u003eIbexaAutomaticMigrationsBundle\u003c/h1\u003e\n\n\u003cp align=\"center\" dir=\"auto\"\u003e\u003ca href=\"https://packagist.org/packages/vardumper/ibexa-automatic-migrations-bundle\" rel=\"nofollow\"\u003e\n  \u003cimg src=\"https://dtrack.erikpoehler.us/api/v1/badge/vulns/project/cff47d71-f2fe-4985-bfff-3f9c40931e33?apiKey=odt_nG83W_EAcQZkk6b5KqknIVoK8nfNjSz38Ompnn\"\u003e\n  \u003cimg src=\"https://camo.githubusercontent.com/a2a9f8cd196fb9664f4f252951b26430a3ab411226a5d3ccdddc361c9f733163/68747470733a2f2f706f7365722e707567782e6f72672f76617264756d7065722f69626578612d6175746f6d617469632d6d6967726174696f6e732d62756e646c652f762f737461626c65\" alt=\"Latest Stable Version\" data-canonical-src=\"https://poser.pugx.org/vardumper/ibexa-automatic-migrations-bundle/v/stable\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003ca href=\"https://packagist.org/packages/vardumper/ibexa-automatic-migrations-bundle\" rel=\"nofollow\"\u003e\u003cimg src=\"https://camo.githubusercontent.com/39f9180a24cb54fb3a13e16d2ee458ac00556fe6b7e274969897304c4724307a/68747470733a2f2f706f7365722e707567782e6f72672f76617264756d7065722f69626578612d6175746f6d617469632d6d6967726174696f6e732d62756e646c652f646f776e6c6f616473\" alt=\"Total Downloads\" data-canonical-src=\"https://poser.pugx.org/vardumper/ibexa-automatic-migrations-bundle/downloads\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e \u003cimg src=\"https://camo.githubusercontent.com/0395833017ab75581633c6828b2a15a3e2b8146edfd2fc916b8c4dab59859441/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f756e697425323074657374732d70617373696e672d677265656e3f7374796c653d666c617426636f6c6f723d253233346331\" alt=\"Static Badge\" style=\"max-width: 100%;\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/vardumper/IbexaAutomaticMigrationsBundle/refs/heads/main/coverage.svg\" alt=\"Code Coverage\" /\u003e\u003c/p\u003e\n\nThis is a bundle for Ibexa DXP. It automatically creates migrations for content types and content type groups.\nThe goal is to eliminate the need to manually create migrations or test them – instead have Ibexa auto-generate them for us whenever content types change.\nMigrations are created in the default locations (in `src/Migrations/Ibexa/migrations` when using ibexa/migrations or in `src/MigrationsDefinitions` when using kaliop, tanoconsulting, mrk-te open source migration bundle).\n\n## Requirements\n* Ibexa DXP \u003e= v5.0\n* Ibexa DXP \u003e= v4.4 (untested)\n* A migrations [bundle](https://packagist.org/packages/mrk-te/ibexa-migration-bundle2) if using Ibexa OSS\n\n## Features\n* Automatically create migrations when changes are made in the admin panel\n* Supports Ibexa DXP v5.x Headless, Experience and Commerce editions via `ibexa/migrations`\n* Supports Ibexa DXP v5.x. Open Source Edition via `mrk-te/ibexa-migration-bundle2`\n\n## Supported Types of Migrations\n* Content Type Group \n* Content Type\n* Language\n* Object State Group \n* Object State\n* Role\n* Section\n* URL Wildcards\n* URL Manager\n\n## Installation\n\n### With Symfony Flex (recommended)\n\nAdd the recipe endpoint to your project's `composer.json` once:\n\n```json\n\"extra\": {\n    \"symfony\": {\n        \"endpoint\": [\n            \"https://raw.githubusercontent.com/vardumper/IbexaAutomaticMigrationsBundle/main/flex/\",\n            \"flex://defaults\"\n        ]\n    }\n}\n```\n\nThen install the bundle:\n\n```bash\ncomposer require vardumper/ibexa-automatic-migrations-bundle\n```\n\nSymfony Flex will automatically:\n- Register the bundle in `config/bundles.php`\n- Copy a default configuration to `config/packages/ibexa_automatic_migrations.yaml`\n\n### Without Symfony Flex (manual)\n\n#### 1. Install the bundle\n\n```bash\ncomposer require vardumper/ibexa-automatic-migrations-bundle\n```\n\n#### 2. Register the bundle in `config/bundles.php`\n\nRemember that even though the bundle is activated for all environments, migration files are only created when `APP_ENV` is set to `dev`.\n\n```php\nreturn [\n    // ...\n    vardumper\\IbexaAutomaticMigrationsBundle\\IbexaAutomaticMigrationsBundle::class =\u003e ['all' =\u003e true],\n];\n```\n\n#### 3. Create the package configuration\n\nCreate `config/packages/ibexa_automatic_migrations.yaml`:\n\n```yaml\nibexa_automatic_migrations:\n    enabled: true\n    types:\n        content: false\n        content_type: true\n        content_type_group: true\n        section: false\n        object_state: false\n        object_state_group: false\n        user: false\n        user_group: false\n        role: false\n        language: false\n        url: false\n```\n\n#### 4. Register the backend controller routes\n\nCreate `config/routes/dev/ibexa_automatic_migrations.yaml`:\n\n```yaml\nibexa_automatic_migrations:\n    resource: '@IbexaAutomaticMigrationsBundle/src/Controller/'\n    type: attribute\n```\n\nTo configure which migration types are generated, go to Admin \u003e Migrations \u003e Settings.\n\n## Testing\n\nThis bundle uses [Pest](https://pestphp.com/) for testing.\n\n### Running Tests\n\nFirst, install the development dependencies:\n\n```bash\ncomposer install --dev\n```\n\nThen run the tests:\n\n```bash\n./vendor/bin/pest\n```\n\n### Coverage Report\nYou can also generate a coverage report by running the following command.\n```\nXDEBUG_MODE=coverage vendor/bin/pest --coverage-html=coverage-report\n```\n\n## Roadmap\n* Allow admins to execute pending migrations in the admin panel\n* Support more types of migrations, not only content types are relevant, but Languages, Sections, etc.\n* Determine or allow configuring which Migration Bundle one wants to use (if kaliop and ibexa bundles are installed)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvardumper%2Fibexaautomaticmigrationsbundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvardumper%2Fibexaautomaticmigrationsbundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvardumper%2Fibexaautomaticmigrationsbundle/lists"}