Skip to content

📝 docs(schema): add namespace-prefixed keys migration guide (#371)#391

Merged
sodre merged 4 commits into
mainfrom
docs/371-migration-namespace-keys
Feb 15, 2026
Merged

📝 docs(schema): add namespace-prefixed keys migration guide (#371)#391
sodre merged 4 commits into
mainfrom
docs/371-migration-namespace-keys

Conversation

@sodre

@sodre sodre commented Feb 15, 2026

Copy link
Copy Markdown
Member

Summary

  • Add step-by-step migration guide for moving from bare DynamoDB keys to namespace-prefixed keys (v0.10.0)
  • Include a complete Python migration script with cost estimates, rollback procedures, and archiver Lambda crash warning
  • Add navigation entry in mkdocs.yml and a link from the existing docs/migrations.md index page
  • Extend doctest infrastructure to pre-create "my-app" table with namespace registry, enabling all 4 Python examples to execute against moto

Test plan

  • uv run mkdocs build --strict passes with no errors for the new page
  • uv run pytest tests/doctest/test_docs_run.py -k "namespace-keys" -v -o "addopts=" — all 4 Python examples execute successfully (not skipped)
  • uv run pytest tests/doctest/test_docs_run.py -v -o "addopts=" — full doctest suite passes (148 passed, 32 skipped, 0 failed)
  • Verify docs/migrations/namespace-keys.md renders correctly with uv run mkdocs serve --livereload --dirty
  • Verify navigation sidebar includes Migrations > Framework + Namespace Keys (v0.10.0)
  • Verify cross-reference link from docs/migrations.md resolves correctly

Closes #371

🤖 Generated with Claude Code

Add a step-by-step guide for migrating existing deployments from bare
DynamoDB keys to namespace-prefixed keys introduced in v0.10.0. Includes
a complete Python migration script, cost estimates, rollback procedures,
and a critical warning about the archiver Lambda crash on unprefixed PKs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sodre sodre added this to the v0.10.0 milestone Feb 15, 2026
@sodre sodre added documentation Improvements or additions to documentation area/infra CloudFormation, IAM, infrastructure labels Feb 15, 2026
@codecov

codecov Bot commented Feb 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.87%. Comparing base (91b3348) to head (7efe9af).
⚠️ Report is 7 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #391      +/-   ##
==========================================
+ Coverage   91.84%   91.87%   +0.02%     
==========================================
  Files          33       33              
  Lines        7435     7435              
==========================================
+ Hits         6829     6831       +2     
+ Misses        606      604       -2     
Flag Coverage Δ
doctest 27.98% <ø> (?)
e2e 40.52% <ø> (ø)
integration 50.12% <ø> (+0.91%) ⬆️
unit 91.62% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

sodre and others added 2 commits February 14, 2026 20:39
Mark code blocks that require a deployed stack (namespace registry,
namespace resolution) as lint-only so the doctest runner skips
execution while still linting syntax.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pre-create "my-app" table with registered default namespace in
doctest_globals so the migration guide examples run against moto.
Set sys.argv with migration script args so argparse succeeds.
Also register "default" namespace in _auto_create_ensure for any
table created by doc examples.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sodre sodre marked this pull request as ready for review February 15, 2026 01:54

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.40.

Benchmark suite Current: 3164a9b Previous: 4e0dc4f Ratio
tests/benchmark/test_operations.py::TestCascadeOverheadBenchmarks::test_cascade_with_stored_limits 130.68301711387937 iter/sec (stddev: 0.01659655063959443) 184.4799256546788 iter/sec (stddev: 0.00011647925339987844) 1.41

This comment was automatically generated by workflow using github-action-benchmark.

Explain that GSI4 starts empty after backfill because existing items
lack GSI4PK, and note the table enters UPDATING state which blocks
other schema changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sodre sodre merged commit 0858e59 into main Feb 15, 2026
16 checks passed
@sodre sodre deleted the docs/371-migration-namespace-keys branch February 15, 2026 02:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/infra CloudFormation, IAM, infrastructure documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

📝 Migration guide: unprefixed to namespace-prefixed DynamoDB keys

1 participant