-
Notifications
You must be signed in to change notification settings - Fork 197
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Implement sqlalchemy loader Begin implementing sqlalchemy loader SQLA load job, factory, schema storage, POC sqlalchemy tests attempt Implement SqlJobClient interface Parquet load, some tests running on mysql update lockfile Limit bulk insert chunk size, sqlite create/drop schema, fixes Generate schema update Get more tests running with mysql More tests passing Fix state, schema restore * Support destination name in tests * Some job client/sql client tests running on sqlite * Fix more tests * ALl sqlite tests passing * Add sqlalchemy tests in ci * Type errors * Test sqlalchemy in own workflow * Fix tests, type errors * Fix config * CI fix * Add alembic to handle ALTER TABLE * FIx workflow * Install mysqlclient in venv * Mysql service version * Single fail * mysql healtcheck * No localhost * Remove weaviate * Change ubuntu version * Debug sqlite version * Revert * Use py datetime in tests * Test on sqlalchemy 1.4 and 2 remove secrets toml remove secrets toml Revert "remove secrets toml" This reverts commit 7dd189c. Fix default pipeline name test * Lint, no cli tests * Update lockfile * Fix test, complex -> json * Refactor type mapper * Update tests destination config * Fix tests * Ignore sources tests * Fix overriding destination in test pipeline * Fix time precision in arrow test * Lint * Fix destination setup in test * Fix * Use nullpool, lazy create engine, close current connection
- Loading branch information
Showing
40 changed files
with
1,915 additions
and
287 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# Tests destinations that can run without credentials. | ||
# i.e. local postgres, duckdb, filesystem (with local fs/memory bucket) | ||
|
||
name: dest | sqlalchemy mysql and sqlite | ||
|
||
on: | ||
pull_request: | ||
branches: | ||
- master | ||
- devel | ||
workflow_dispatch: | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
# NOTE: this workflow can't use github secrets! | ||
# DLT_SECRETS_TOML: ${{ secrets.DLT_SECRETS_TOML }} | ||
|
||
RUNTIME__SENTRY_DSN: https://[email protected]/4504819859914752 | ||
RUNTIME__LOG_LEVEL: ERROR | ||
RUNTIME__DLTHUB_TELEMETRY_ENDPOINT: ${{ secrets.RUNTIME__DLTHUB_TELEMETRY_ENDPOINT }} | ||
ACTIVE_DESTINATIONS: "[\"sqlalchemy\"]" | ||
ALL_FILESYSTEM_DRIVERS: "[\"memory\", \"file\"]" | ||
|
||
jobs: | ||
get_docs_changes: | ||
name: docs changes | ||
uses: ./.github/workflows/get_docs_changes.yml | ||
|
||
run_loader: | ||
name: dest | sqlalchemy mysql and sqlite | ||
needs: get_docs_changes | ||
if: needs.get_docs_changes.outputs.changes_outside_docs == 'true' | ||
strategy: | ||
fail-fast: false | ||
# Run on sqlalchemy 1.4 and 2.0 | ||
matrix: | ||
sqlalchemy: [1.4, 2] | ||
defaults: | ||
run: | ||
shell: bash | ||
runs-on: "ubuntu-latest" | ||
|
||
# Service containers to run with `container-job` | ||
services: | ||
# Label used to access the service container | ||
mysql: | ||
image: mysql:8 | ||
env: | ||
MYSQL_ROOT_PASSWORD: root | ||
MYSQL_DATABASE: dlt_data | ||
MYSQL_USER: loader | ||
MYSQL_PASSWORD: loader | ||
ports: | ||
- 3306:3306 | ||
# Wait for the service to be ready before completing the job | ||
options: >- | ||
--health-cmd="mysqladmin ping -h localhost -u root -proot" | ||
--health-interval=10s | ||
--health-timeout=5s | ||
--health-retries=5 | ||
steps: | ||
- name: Check out | ||
uses: actions/checkout@master | ||
|
||
- name: Setup Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
python-version: "3.10.x" | ||
|
||
- name: Install Poetry | ||
uses: snok/[email protected] | ||
with: | ||
virtualenvs-create: true | ||
virtualenvs-in-project: true | ||
installer-parallel: true | ||
|
||
- name: Load cached venv | ||
id: cached-poetry-dependencies | ||
uses: actions/cache@v3 | ||
with: | ||
path: .venv | ||
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-local-destinations | ||
|
||
- name: Install dependencies | ||
run: poetry install --no-interaction -E parquet -E filesystem -E sqlalchemy -E cli --with sentry-sdk --with pipeline && poetry run pip install mysqlclient && poetry run pip install "sqlalchemy==${{ matrix.sqlalchemy }}" | ||
|
||
- name: create secrets.toml | ||
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml | ||
|
||
# always run full suite, also on branches | ||
- run: poetry run pytest tests/load -x --ignore tests/load/sources | ||
name: Run tests Linux | ||
env: | ||
DESTINATION__SQLALCHEMY_MYSQL__CREDENTIALS: mysql://root:[email protected]:3306/dlt_data # Use root cause we need to create databases | ||
DESTINATION__SQLALCHEMY_SQLITE__CREDENTIALS: sqlite:///_storage/dl_data.sqlite |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.