원클릭으로
schema-migration-safety
Plan and apply backwards-compatible two-step schema changes for Django migrations without using jig.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Plan and apply backwards-compatible two-step schema changes for Django migrations without using jig.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
When the user wants to codify a repeatable code generation pattern into a jig recipe — design variables, choose operations (create/inject/patch/replace), write Jinja templates, and validate the result. Use when someone says "I keep writing this same boilerplate", "make a recipe for X", or wants to turn a manual edit into an automated pattern.
When the user needs to chain multiple jig recipes into a multi-step workflow with conditional execution and shared variables. Use when a pattern spans multiple files that need coordinated creation and modification, like scaffolding an entire endpoint or a full feature slice.
Scaffold queryset/manager/selector layers and wire view reads through selector entrypoints with jig.
Generate two-step rollout-safe Django migrations plus model-field patching using jig.
Insert consistent method/step structured logging lines into target functions using jig.
Write deterministic service tests with stable fixtures and boundary mocks without using jig.
| name | schema-migration-safety |
| description | Plan and apply backwards-compatible two-step schema changes for Django migrations without using jig. |
Use this skill for model field changes that need rollout-safe migrations. Implement the file edits directly. Do not return a checklist-only response.
app_labelmodel_namefield_namefield_typeadd_field_kwargsfinal_field_kwargsprevious_migrationadd_migration_namefinalize_migration_namebackfill_valuemodels.py so class Entity(models.Model) contains classification = models.CharField(max_length=20) as the final model field shape.add_migration_name.migrations and modelsbackfill_classification(apps, schema_editor)model_cls = apps.get_model(app_label, model_name) with the provided variable valuesdb_alias = schema_editor.connection.aliasfor row in model_cls.objects.using(db_alias).all().only("id", field_name): with the provided field name literalNone or "", set it to the provided backfill value and call row.save(update_fields=["{{ field_name }}"])migrations.AddField(...) with the safe first-state kwargs from the variablesmigrations.RunPython(backfill_classification, migrations.RunPython.noop)finalize_migration_name.add_migration_namemigrations.AlterField(...) with the final field kwargs from the variablesNOT NULL additions on large existing tables.migrations.RunPython.noop.