Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data Contracts block _dlt tables creation #1237

Open
DrRaider opened this issue Apr 17, 2024 · 3 comments · May be fixed by #1441
Open

Data Contracts block _dlt tables creation #1237

DrRaider opened this issue Apr 17, 2024 · 3 comments · May be fixed by #1441
Assignees
Labels
bug Something isn't working community This issue came from slack community workspace

Comments

@DrRaider
Copy link

dlt version

0.4.8

Describe the problem

I tried to use table: freeze on an existing database, to write to an existing table, but since the _dlt tables were missing, I got the following error: Contract on tables with mode freeze is violated. Trying to add table xxxxxx but new tables are frozen..

Expected behavior

_dlt tables should be create even with freeze enabled, or it should be documented that we need to create them first.
And maybe differentiate the error so that the user knows that it's the _dlt tables that are missing.

Steps to reproduce

On a clean project (first run) if I run my pipeline with table: freeze and I have created the table I want to write to, then I get an error Contract on tables with mode freeze is violated. Trying to add table xxxxxx but new tables are frozen..
If I then remove the table: freeze run it once, and finally add it back, it will run without issue.

The main differences between the two runs is that on the second one I have the _dlt tables already created.

Operating system

macOS

Runtime environment

Local

Python version

3.11

dlt data source

Cloud Pub/Sub -> JSON

dlt destination

Postgres

Other deployment details

No response

Additional information

No response

@DrRaider
Copy link
Author

@rudolfix
Copy link
Collaborator

@sh-rp let's investigate! this was one of our test cases and I'm pretty sure we have exception for it...

@rudolfix rudolfix added bug Something isn't working community This issue came from slack community workspace labels Apr 21, 2024
@rudolfix rudolfix assigned sh-rp and rudolfix and unassigned sh-rp Apr 22, 2024
@rudolfix rudolfix assigned sultaniman and unassigned rudolfix Apr 30, 2024
@sh-rp
Copy link
Collaborator

sh-rp commented Jun 4, 2024

@DrRaider this is not a problem with the dlt tables, these will always be created, it is a problem that our internal schema does not know about the table that dlt has never seen but exists on the destination. To make this work allowing table evolution once is the way to go as you suggest. I will add a small note in the docs.

@sh-rp sh-rp linked a pull request Jun 4, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working community This issue came from slack community workspace
Projects
Status: Planned
4 participants