Ich verwende die Bibliothek dataset, um zu versuchen, eine Postgres-Datenbank in einer SQLite-Datei zu sichern. Der Code, den ich laufen geht wie folgt:Fehler: versuchen, einen Primärschlüssel als Nicht-Primärschlüssel neu zu definieren
local_db = "sqlite:///backup_file.db"
with dataset.connect(local_db) as save_to:
with dataset.connect(postgres_db) as download_from:
for row in download_from['outlook']:
save_to['outlook'].insert(row)
Wenn ich eine Zeile der Tabelle zu drucken, es sieht wie folgt aus:
OrderedDict([
('id', 4400),
('first_sighting', '2014-08-31'),
('route', None),
('sighted_by', None),
('date', None)
])
Allerdings, wenn ich an die Leitung bekommen save_to['outlook'].insert(row)
ich eine bekommen Fehler beim folgenden Stack-Trace:
Traceback (most recent call last):
File "/home/anton/Development/Python/TTC/backup_db.py", line 25, in <module>
save_to['outlook'].insert(dict(row))
File "/home/anton/.virtualenvs/flexity/lib/python3.6/site-packages/dataset/table.py", line 79, in insert
row = self._sync_columns(row, ensure, types=types)
File "/home/anton/.virtualenvs/flexity/lib/python3.6/site-packages/dataset/table.py", line 278, in _sync_columns
self._sync_table(sync_columns)
File "/home/anton/.virtualenvs/flexity/lib/python3.6/site-packages/dataset/table.py", line 245, in _sync_table
self._table.append_column(column)
File "/home/anton/.virtualenvs/flexity/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 681, in append_column
column._set_parent_with_dispatch(self)
File "/home/anton/.virtualenvs/flexity/lib/python3.6/site-packages/sqlalchemy/sql/base.py", line 431, in _set_parent_with_dispatch
self._set_parent(parent)
File "/home/anton/.virtualenvs/flexity/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 1344, in _set_parent
self.key, table.fullname))
sqlalchemy.exc.ArgumentError: Trying to redefine primary-key column 'id' as a non-primary-key column on table 'outlook'
Irgendwelche Ideen, was ich falsch mache? Ich habe das in Python 2.7.14 und 3.6.3 versucht
schlägt es beim zweiten Einsatz fehl? – Dionys
Was ist ein "Nicht-Primärschlüssel"? – wildplasser