{"id":28565760,"url":"https://github.com/yakamara/ydeploy","last_synced_at":"2025-06-10T14:40:18.278Z","repository":{"id":18346219,"uuid":"84062523","full_name":"yakamara/ydeploy","owner":"yakamara","description":"Deployment von REDAXO-Projekten","archived":false,"fork":false,"pushed_at":"2024-05-21T16:12:50.000Z","size":162,"stargazers_count":21,"open_issues_count":6,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2024-05-22T15:31:43.484Z","etag":null,"topics":["deployer","deployment","hacktoberfest","migration","php","redaxo"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yakamara.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2017-03-06T10:53:52.000Z","updated_at":"2024-05-21T16:12:02.000Z","dependencies_parsed_at":"2023-01-11T20:28:45.314Z","dependency_job_id":"7ca64c03-bd57-465a-a295-151273bce4da","html_url":"https://github.com/yakamara/ydeploy","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yakamara%2Fydeploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yakamara%2Fydeploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yakamara%2Fydeploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yakamara%2Fydeploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yakamara","download_url":"https://codeload.github.com/yakamara/ydeploy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yakamara%2Fydeploy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259093957,"owners_count":22804262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["deployer","deployment","hacktoberfest","migration","php","redaxo"],"created_at":"2025-06-10T14:40:17.283Z","updated_at":"2025-06-10T14:40:18.252Z","avatar_url":"https://github.com/yakamara.png","language":"PHP","readme":"YDeploy\n=======\n\nDas Addon bietet Tools für die Datenbank-Migration während des Deployments von REDAXO-Projekten.\n Zusätzlich bietet es eine auf REDAXO abgestimmte Konfiguration für [deployer](https://deployer.org).\n\nMigration\n---------\n\nDas Addon bietet zwei Konsolen-Befehle für die Migration:\n\n### `redaxo/bin/console ydeploy:diff`\n\nBeim ersten Aufruf dieses Kommandos werden in `redaxo/data/addons/ydeploy` zwei Dateien angelegt:\n\n* `schema.yml` mit den Tabellendefinitionen der Datenbank\n* `fixtures.yml` mit allen Datensätzen der Tabellen, deren Daten mit synchronisiert werden sollen (Metainfo-Definitionen, MediaManager-Typen, YForm-Manager-Defintionen etc.)\n\nBeim erneuten Aufruf wird dann die aktuelle Datenbank-Struktur mit der aus der `schema.yml` verglichen, und die relevanten Daten mit der `fixtures.yml`. Sollte es Abweichungen geben, werden die beiden Dateien aktualisiert und eine Migrationsdatei in `redaxo/data/addons/ydeploy/migrations/` erstellt, die alle Änderungen enthält.\n\nDetails des Kommandos erhält man über `redaxo/bin/console help ydeploy:diff`.\n\nTemplates, Module und Actions werden nicht über die `fixtures.yml` synchronisiert, sondern dafür sollte das [Developer-Addon](https://github.com/FriendsOfREDAXO/developer) genutzt werden.\n\n### `redaxo/bin/console ydeploy:migrate`\n\nDieses Kommando führt alle noch ausstehenden Migrationsdateien aus.\n\nBei Nutzung von deployer (siehe unten) wird dieses Kommando automatisch während des Deployments ausgeführt.\nEs ist aber auch geeignet, um Datenbank-Änderungen der anderen Entwickler in die lokale Entwicklungsumgebung zu übernehmen.\n\nDetails des Kommandos erhält man über `redaxo/bin/console help ydeploy:migrate`.\n\nDeployment über deployer\n------------------------\n\nZunächst sollte man sich mit den Grundlagen von deployer vertraut machen: https://deployer.org\n\nDas Addon liefert deployer selbst nicht mit. Es kann über verschiedene Wege instaliert werden:\n\n* Lokal im Projekt (ggf. in separatem `.tools`-Ordner: `composer require deployer/deployer`\n* Global über composer: `composer global require deployer/deployer`\n* Als Phar-Archive: https://deployer.org/download\n\n### Konfiguration\n\nIm Projekt-Root sollte die Konfigurationsdatei `deploy.php`  angelegt werden, die die auf REDAXO abgestimmte \n[Basis-Konfiguration](https://github.com/yakamara/ydeploy/blob/main/deploy.php) aus diesem Addon einbindet:\n\n```php\n\u003c?php\n\nnamespace Deployer;\n\nif ('cli' !== PHP_SAPI) {\n    throw new \\Exception('The deployer configuration must be used in cli.');\n}\n\n// Der Pfad ist ggf. anzupassen, falls der Projekt-Root nicht dem REDAXO-Root entspricht\n// Falls die Yak-Struktur (https://github.com/yakamara/yak) verwendet wird, sollte stattdessen die `deploy_yak.php` eingebunden werden\n// require __DIR__ . '/redaxo/src/addons/ydeploy/deploy_yak.php';\nrequire __DIR__ . '/redaxo/src/addons/ydeploy/deploy.php';\n\nset('repository', 'git@github.com:user/repo.git');\n\nhost('servername')\n    -\u003esetHostname('example.com')\n    -\u003esetDeployPath('/var/www/com.example')\n;\n```\n\nIn dieser Datei kann die Konfiguration individuell auf das Projekt abgestimmt werden, sowie durch eigene weitere Tasks\nergänzt werden.\nSiehe dazu: \n* https://deployer.org/docs/7.x/basics\n* https://deployer.org/docs/7.x/hosts\n* https://deployer.org/docs/7.x/tasks\n\n### .gitignore\n\nDie folgende `.gitignore` hat sich als Basis bewährt bei Nutzung von deployer:\n\n```\n/.build\n/media/*\n!/media/.redaxo\n/redaxo/cache/*\n!/redaxo/cache/.*\n/redaxo/data/addons/*/*\n!/redaxo/data/addons/developer/*\n!/redaxo/data/addons/mblock/*\n!/redaxo/data/addons/mform/*\n!/redaxo/data/addons/ydeploy/*\n/redaxo/data/core/*\n/redaxo/data/log/*\n```\n\nSollte REDAXO nicht direkt im Projekt-Root liegen, müssen die Pfade entsprechend angepasst werden.\n\n### Deployment\n\nFühre `dep deploy` aus, um das Deployment auf den Zielserver zu starten. Dieser Befehl besteht aus zwei Teilen, die sich auch einzeln ausführen lassen:\n\n1. Lokal vorbereiten: `dep build local`\n2. Vorbereitetes Paket auf den Server spielen: `dep release [host]`\n\nSo lässt sich bspw. über `dep deploy staging` auf den `staging`-Server deployen, testen und anschließend mit dem bereits vorliegenden Build auf den Produktivserver aufspielen: `dep release production`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyakamara%2Fydeploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyakamara%2Fydeploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyakamara%2Fydeploy/lists"}