Skip to main content

Reusable profiler and importer chassis for tabular migrations

Project description

migration_workbench

Reusable profiler and importer chassis for tabular workbook-to-app migrations.

PyPI: migration-workbenchpip install migration-workbench (import package migration_workbench uses underscores).

Using this project

As a library (recommended for product repos)
Add the Django apps you need to INSTALLED_APPS and wire URLs/commands in your Django project. Set DJANGO_SETTINGS_MODULE to your project’s settings module (not migration_workbench.settings) in production. Host apps typically depend on a released version, for example migration-workbench>=0.1.0,<1.

Developing this repository (full chassis checkout)
Clone the repo and use an editable install so manage.py, docs examples, and make chassis-gate match upstream:

  1. python3 -m venv .venv
  2. .venv/bin/pip install -e ".[dev]" (contributors: .venv/bin/pip install -e ".[dev,release]" to build wheels locally)
  3. . ./.env.example (or create .env)
  4. .venv/bin/python manage.py migrate
  5. make chassis-gate

Quickstart (install from PyPI)

For tooling and Django apps without cloning:

  1. python3 -m venv .venv
  2. .venv/bin/pip install "migration-workbench[dev]" (omit [dev] if you do not need pytest/black)
  3. Use wb on your PATH, or import apps (connectors, profiler, importer, workbook, deployment, …) from your own Django project.

If your index does not have a release yet, install from a local checkout instead: .venv/bin/pip install -e /path/to/migration-workbench.

Note: The bundled migration_workbench.settings resolves paths relative to the installed package; for deployments use your own settings module and database configuration.

Releases

Versions follow semantic versioning; 0.x may include breaking changes.

To publish a release:

  1. Bump version in pyproject.toml.
  2. Commit and push tag v + version (e.g. v0.1.0 must match version = "0.1.0").
  3. Configure Trusted Publishing on PyPI for this GitHub repository (see .github/workflows/publish-pypi.yml).
  4. The Publish package workflow uploads the sdist and wheel to PyPI.

Dry-run uploads can be done manually with twine upload --repository testpypi dist/* after python -m build (optional [release] extra installs build and twine).

Core Commands

  • python manage.py pull_bundle --config docs/examples/live-config.example.json --output-dir /tmp/bundle
  • python manage.py snapshot_bundle --config docs/examples/offline-config.example.json --output-dir /tmp/bundle
  • python manage.py import_reference_example example_data --validate-only
  • python manage.py import_reference_example example_data

Profiling (Google Sheets, Drive, Coda) lives under manage.py; see docs/quickstart.md and docs/coda-runbook.md. Makefile targets profile-coda-preflight and profile-coda-corpus wrap the Coda smoke flows (CODA_CORPUS_CONFIG / CODA_CORPUS_OUT_DIR for the latter).

Schema scaffolding (workbook app): python manage.py scaffold_workbook_schema --bundle-config example_data/scaffold_workbook_bundle.example.json --table-profile example_data/scaffold_workbook_table_profile.example.json --out /tmp/schema-contract.yaml (writes YAML for product repos to refine into Django models; see docs/architecture.md).

Deployment control plane:

  • wb manifest lint --manifest deploy/spaces.yml
  • wb deploy <space> --env <preview|production> --dry-run

Deployment

  • Spec: docs/deployment-spec-v0.2.md
  • Acceptance criteria: docs/deployment-acceptance-criteria.md
  • Space manifest baseline: deploy/spaces.yml
  • Pipeline narrative: docs/pipeline.md

Database Modes

  • DB_ENGINE=sqlite (default)
  • DB_ENGINE=postgres with DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_PORT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

migration_workbench-0.1.0.tar.gz (76.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

migration_workbench-0.1.0-py3-none-any.whl (106.9 kB view details)

Uploaded Python 3

File details

Details for the file migration_workbench-0.1.0.tar.gz.

File metadata

  • Download URL: migration_workbench-0.1.0.tar.gz
  • Upload date:
  • Size: 76.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for migration_workbench-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2880975b3489d205c01d546f05b1a9a8dfc9fe889c3d8f91278a1e976d0a214c
MD5 3f3da7937534130c00a396b73d96f81e
BLAKE2b-256 af91c5a1b95fd4c56b99fedc1690f799827430a73dbb821773b5ba703804222d

See more details on using hashes here.

Provenance

The following attestation bundles were made for migration_workbench-0.1.0.tar.gz:

Publisher: publish-pypi.yml on MrAllatta/migration-workbench

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file migration_workbench-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for migration_workbench-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75bb826306184455df9dbb6186635b2c23f21debd84ce595311b963df665c905
MD5 ce22f96ed81b75960ddb1eaa8392b7f7
BLAKE2b-256 aa4f573b050c723804c0e097dd4806f1abc32057d7eb90e08e6ac01737b33b51

See more details on using hashes here.

Provenance

The following attestation bundles were made for migration_workbench-0.1.0-py3-none-any.whl:

Publisher: publish-pypi.yml on MrAllatta/migration-workbench

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page