You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
The text was updated successfully, but these errors were encountered:
@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
linked a pull request
Jun 4, 2024
that will
close
this issue
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 withfreeze
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
The text was updated successfully, but these errors were encountered: