Skip to content

.add_foreign_key() corrupts database if column contains a space #238

Closed
@simonw

Description

@simonw

I ran this:

db["Reports"].add_foreign_key("Reported by ID", "Reporters", "id")

And got this:

~/jupyter-venv/lib/python3.9/site-packages/sqlite_utils/db.py in add_foreign_keys(self, foreign_keys)
    616         # Have to VACUUM outside the transaction to ensure .foreign_keys property
    617         # can see the newly created foreign key.
--> 618         self.vacuum()
    619 
    620     def index_foreign_keys(self):

~/jupyter-venv/lib/python3.9/site-packages/sqlite_utils/db.py in vacuum(self)
    629 
    630     def vacuum(self):
--> 631         self.execute("VACUUM;")
    632 
    633 

~/jupyter-venv/lib/python3.9/site-packages/sqlite_utils/db.py in execute(self, sql, parameters)
    234             return self.conn.execute(sql, parameters)
    235         else:
--> 236             return self.conn.execute(sql)
    237 
    238     def executescript(self, sql):

DatabaseError: database disk image is malformed

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions