D3.1 phase 4: Remove the twelve moved fields from CustomUser (contract)
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 45/100
調査の方向性
まずフェーズ 2 と 3 (#391 と #392) がマージされていることを確認し、その後、docs/plan/phase-3.md および _docs/specs/09-migration-rollout-roadmap.md と併せて CustomUser の定義とマイグレーション履歴を確認してください。削除マイグレーションを作成する前に、make django-check、make migrations-check、および gallery の回帰テストを実行してください。完了とは、フルスイート、新規環境での migrate、文書化された grep、リバージョンの判断、P14 への引き継ぎ要件が満たされていることを意味します。
索引モデルが issue の本文から書いたものです。
説明
Part of the D3.1 umbrella (#334): phase 4 of 6. Contract step: removes the twelve moved fields and the moved unique constraint from CustomUser now that phases 2 and 3 have switched every reader.
Normative sources
| Source | What it governs |
|---|---|
community-base repo: docs/plan/phase-3.md D3.1 |
Contract step |
_docs/specs/09-migration-rollout-roadmap.md |
Expand-and-contract rollout policy: this is the "contract" half |
| Phases 2 (#391) and 3 (#392) | Reader migrations this issue assumes complete |
Goal
CustomUser no longer declares role, certificate_name, country, region, registration_role, github_url, linkedin_url, personal_website_url, about_me, dark_mode, normalized_email, identity_state, or the accounts_active_normalized_email_unique constraint. courses.LearnerProfile and accounts_ext.IdentityState are the sole source of truth. No behavior change to any reader — they were already reading the new models as of phase 2/3.
Scope
- Migration removing the twelve fields and the constraint from
CustomUser. - Full-repository grep confirming no remaining attribute access to the removed fields off
CustomUser/the auth model, outside migrations and theaccounts.services.cmp_learner_importsource-table string literals (accounts_customuser) andCmpLearnerImportProgress.tablevalues, which name the CMP export's source tables, not the live model, and are intentionally unaffected. - Re-run of the gallery-module regression test added in phase 2 to confirm it is still green after the fields are gone (it should never have depended on them).
Non-goals
- No rename (phase 5).
- No AISL field additions (phase 6).
- No change to
username,newsletter_subscribed,home_dismissals, ornewsletter_preference_changed_at(the last added toCustomUserafter #334's original grooming, alongsidenewsletter_subscribedin the BE-15 fix) — all four stay untouched; their eventual disposition isD3.2/C3.7adoption-time reconciliation, not this issue.
Dependencies
- Depends on: #391, #392 (both reader-migration phases must be merged and verified first).
- Blocks: #394 (rename cannot safely land while stale fields still exist to shadow the new profiles in a partial rebase).
Acceptance criteria
Django and integration
-
make django-check/make migrations-checkpass. -
make test(full suite) passes. -
CustomUserno longer declares the twelve fields oraccounts_active_normalized_email_unique; the constraint is enforced onaccounts_ext.IdentityStateonly. - A documented grep over tracked
.pyfiles (excluding migrations and the named CMP source-table literals) shows zero attribute access to the removed fields off the user model. -
manage.py migrateapplies cleanly end to end on a fresh database; the removal migration reverses, or its irreversibility is documented in the migration file.
Repository and operations
-
P14row-count rehearsal on a development database copy: counts before and after recorded, every difference explained by the phase 1 per-user profile tables plus this phase's column drop. If no development copy is reachable locally, recordNot run here, needs: P14 rehearsal on a development database copyand keep the issue open with thehumanlabel at acceptance. - Versioned verification plan per
_docs/ci/change-selective-ci.mdrecorded in the engineer handoff.
- 主要言語
- Python
- スター
- 0
- フォーク
- 0
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataTalksClub/website のほかの issue
-
bug infra operations P1 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DataTalksClub/website#329 ·
-
bug content data-migration documentation events operations P1
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
DataTalksClub/website#327 ·
-
bug frontend P0 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
DataTalksClub/website#300 · コメント 7 件 ·
-
bug data-migration events P0 testing
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DataTalksClub/website#295 · コメント 6 件 ·
-
bug infra needs grooming
難易度 2/5 1〜3時間 初心者へのやさしさ 50/100
DataTalksClub/website#459 ·
DataTalksClub/website の issue をすべて見る
似ている issue
-
python triage
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
microsoft/semantic-kernel#14590 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
pinterest/pymemcache#662 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 半日 初心者へのやさしさ 62/100
gnocchixyz/gnocchi#1527 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
tenstorrent/tt-model-manager#181 ·
メンテナーはふだん 1 日以内に返信