Capture and validate stored procedure baselines during database migrations to Snowflake
Project description
snowflake-snowconvert-testing-orchestration
Capture and validate stored procedure baselines during database migrations to Snowflake. Part of the SnowConvert migration toolchain.
What it does
When migrating stored procedures from SQL Server, Oracle, or other platforms to Snowflake, this tool automates the verification process:
- Capture -- Execute stored procedures on the source database and save their results as baseline files.
- Validate -- Execute the same procedures on Snowflake and compare the results against the captured baselines.
- Report -- Generate detailed validation reports covering schema, metrics, and row-level comparisons.
Installation
pip install snowflake-snowconvert-testing-orchestration
Quick start
Capture baselines from source
test-runner capture --project-root /path/to/project
Validate on Snowflake
test-runner validate --project-root /path/to/project -c my_snowflake_connection
Configuration
Create a settings/test_config.yaml in your project directory:
source_platform: sqlserver
target_platform: snowflake
validation_configuration:
schema_validation: true
metrics_validation: true
row_validation: true
Connections are resolved at runtime from TOML files (~/.snowflake/snowct/<dialect>.toml for source, ~/.snowflake/config.toml for target) or via CLI flags (--source-connection, --connection).
Define test cases for each procedure in artifacts/<database>/<schema>/procedure/<Name>/test/<name>.yml:
validation:
source:
steps:
run: |-
EXECUTE testdb.dbo.GetAllProducts
target:
steps:
run: |-
CALL TESTDB.DBO.GETALLPRODUCTS()
test_cases:
- []
Library usage
from test_runner import create_container, run_capture, run_validate
container = create_container("my_project")
config = container.config()
registry = container.factory_registry()
capture_stats = run_capture(config=config, factory_registry=registry, project_root="my_project")
validate_stats = run_validate(config=config, factory_registry=registry, project_root="my_project")
Requirements
- Python >= 3.10
- Access to a source database (SQL Server, Oracle, etc.)
- A Snowflake account with SnowSQL or connector configuration
Related packages
- snowflake-data-validation -- Data validation framework for Snowflake migrations
License
Snowflake Conversion Software Terms
Project details
Release history Release notifications | RSS feed
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 snowflake_snowconvert_testing_orchestration-0.2.192.tar.gz.
File metadata
- Download URL: snowflake_snowconvert_testing_orchestration-0.2.192.tar.gz
- Upload date:
- Size: 225.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbfa204d527189772119f570239850682b94ca5d9f47d405d2f201a2c4376e96
|
|
| MD5 |
956b49ee73fb4c7042a8f43f6555e237
|
|
| BLAKE2b-256 |
ebb4baa6bb5324d3e8d466b81f3b28894fb20c9dae1c79ec0218298c6173b542
|
File details
Details for the file snowflake_snowconvert_testing_orchestration-0.2.192-py3-none-any.whl.
File metadata
- Download URL: snowflake_snowconvert_testing_orchestration-0.2.192-py3-none-any.whl
- Upload date:
- Size: 172.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27d8ebb20598274de84041a4e11f48b689557c2c87d306e49e7467653406869d
|
|
| MD5 |
0029ee62e44573cd580c36d8940987b5
|
|
| BLAKE2b-256 |
5756b00f40bd8090589a667ad14f79ccc2434915ee310ccbbf396dee61134b41
|