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-workbench — pip 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:
python3 -m venv .venv.venv/bin/pip install -e ".[dev]"(contributors:.venv/bin/pip install -e ".[dev,release]"to build wheels locally). ./.env.example(or create.env).venv/bin/python manage.py migratemake chassis-gate
Quickstart (install from PyPI)
For tooling and Django apps without cloning:
python3 -m venv .venv.venv/bin/pip install "migration-workbench[dev]"(omit[dev]if you do not need pytest/black)- Use
wbon 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:
- Bump
versioninpyproject.toml. - Commit and push tag
v+ version (e.g.v0.1.0must matchversion = "0.1.0"). - Configure Trusted Publishing on PyPI for this GitHub repository (see
.github/workflows/publish-pypi.yml). - 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/bundlepython manage.py snapshot_bundle --config docs/examples/offline-config.example.json --output-dir /tmp/bundlepython manage.py import_reference_example example_data --validate-onlypython 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.ymlwb 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=postgreswithDB_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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2880975b3489d205c01d546f05b1a9a8dfc9fe889c3d8f91278a1e976d0a214c
|
|
| MD5 |
3f3da7937534130c00a396b73d96f81e
|
|
| BLAKE2b-256 |
af91c5a1b95fd4c56b99fedc1690f799827430a73dbb821773b5ba703804222d
|
Provenance
The following attestation bundles were made for migration_workbench-0.1.0.tar.gz:
Publisher:
publish-pypi.yml on MrAllatta/migration-workbench
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
migration_workbench-0.1.0.tar.gz -
Subject digest:
2880975b3489d205c01d546f05b1a9a8dfc9fe889c3d8f91278a1e976d0a214c - Sigstore transparency entry: 1411579138
- Sigstore integration time:
-
Permalink:
MrAllatta/migration-workbench@75917f9b530ca45188dc9c3dbf7c29ac2fd2e6b6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MrAllatta
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@75917f9b530ca45188dc9c3dbf7c29ac2fd2e6b6 -
Trigger Event:
push
-
Statement type:
File details
Details for the file migration_workbench-0.1.0-py3-none-any.whl.
File metadata
- Download URL: migration_workbench-0.1.0-py3-none-any.whl
- Upload date:
- Size: 106.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75bb826306184455df9dbb6186635b2c23f21debd84ce595311b963df665c905
|
|
| MD5 |
ce22f96ed81b75960ddb1eaa8392b7f7
|
|
| BLAKE2b-256 |
aa4f573b050c723804c0e097dd4806f1abc32057d7eb90e08e6ac01737b33b51
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
migration_workbench-0.1.0-py3-none-any.whl -
Subject digest:
75bb826306184455df9dbb6186635b2c23f21debd84ce595311b963df665c905 - Sigstore transparency entry: 1411579295
- Sigstore integration time:
-
Permalink:
MrAllatta/migration-workbench@75917f9b530ca45188dc9c3dbf7c29ac2fd2e6b6 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/MrAllatta
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@75917f9b530ca45188dc9c3dbf7c29ac2fd2e6b6 -
Trigger Event:
push
-
Statement type: