Eine Migrations-Checkliste für jeden PR erzwingen
Erstelle eine Repo-Skill, mit der Devin destruktive Operationen erkennt, die Rollback-Sicherheit überprüft und Schemaänderungen validiert, sobald ein Pull-Request (PR) Datenbankmigrationen umfasst.Skill „Migrations-Checkliste“ erstellen
Ein Repository-Skill ist eine Markdown-Datei, die du in Sobald diese Datei committed ist, betrachtet Devin sie als verfügbare Fähigkeit. Immer wenn eine Sitzung in diesem Repository Migrationsdateien berührt, kann Devin die Checkliste automatisch ausführen – oder Sie können sie jederzeit manuell aufrufen.
.agents/skills/<your-skill>/ in eines deiner Repositories committest. Devin erkennt alle Skills in allen verbundenen Repositories – du kannst sie manuell auslösen oder Devin kann sie automatisch auslösen, wenn eine relevante Situation erkannt wird. Dieser Skill weist Devin genau an, wie Datenbank-Migrationen vor dem Öffnen oder Aktualisieren eines Pull-Requests (PR) zu prüfen sind – und fängt dabei Fehler ab, die im Code-Review normalerweise übersehen werden.Committe .agents/skills/migration-checklist/migration-checklist.md in deinem Repository:Sehen Sie den Skill-Trigger in einer realen Migration
Wenn Devin an einer Aufgabe arbeitet, die eine Migrationsdatei hinzufügt oder ändert, liest es das Diff, erkennt den Migrations-Checklisten-Skill und folgt der Checkliste, bevor es den PR öffnet. So sieht das in der Praxis aus:
- Scannt das Diff — Devin erkennt eine neue Datei in
db/migrate/und aktiviert den Migrations-Checklisten-Skill - Markiert eine destruktive Operation — Die Migration entfernt eine
legacy_email-Spalte. Devin fügt einen PR-Kommentar hinzu:remove_column :users, :legacy_emailist eine destruktive Operation. Verifiziert: Die Migration enthält einen Datensicherungsschritt, der Werte vor der Entfernung nachuser_archiveskopiert. - Fügt einen fehlenden Index hinzu — Die Migration fügt
account_idzurinvoices-Tabelle hinzu, hat aber keinen Index. Devin hängtadd_index :invoices, :account_idan die Migrationsdatei an - Führt Rollback aus — Devin führt
bin/rails db:migrate:rollback STEP=1auf der Testdatenbank aus. Der Befehl läuft erfolgreich durch - Regeneriert das Schema — Devin führt
bin/rails db:schema:dumpaus, erkennt ein Diff indb/schema.rbund nimmt die aktualisierte Datei in den Commit auf - Führt Model-Tests aus — Alle Model-Tests bestehen. Devin öffnet den PR mit einer Zusammenfassung jedes Checks
Passen Sie den Skill an Ihr ORM und Ihren Stack an
Die obige Checkliste richtet sich an Rails, aber die gleiche Struktur funktioniert für jedes ORM. Bitte Devin, den Skill für deinen Stack neu zu schreiben:
Checkliste im Laufe der Zeit erweitern
Jeder Migrationsvorfall offenbart eine Lücke, die die Checkliste nicht abgedeckt hat. Nach jedem fügen Sie eine Regel hinzu – das ist ein Einzeilen-Commit in der Skill-Datei.Hier sind typische Ergänzungen, die Teams nach realen Vorfällen vornehmen:Da sich die Skill-Datei in eurem Repo befindet, durchlaufen diese Regeln das Code-Review – euer gesamtes Team stimmt zu, was geprüft wird, und sie sind immer mit eurem Migrationstooling synchronisiert.
