mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 17:34:32 +02:00
SQLite backs a column-level UNIQUE constraint with an auto-index whose sql in sqlite_master is NULL. The index-rebuild step in transform_sql() treated any NULL-sql index as an error, causing TransformError on tables with UNIQUE columns. The fix adds a 'unique' parameter to create_table_sql so the constraint is reproduced as an inline UNIQUE column attribute in the new CREATE TABLE statement. In transform_sql(), auto-UNIQUE indices (origin='u') are collected before the CREATE TABLE call and passed via unique=; the index rebuild loop then skips them with a continue instead of raising. Column renames are applied to the constraint; dropping a UNIQUE column drops its constraint silently. Fixes #762 |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| __main__.py | ||
| cli.py | ||
| db.py | ||
| hookspecs.py | ||
| migrations.py | ||
| plugins.py | ||
| py.typed | ||
| recipes.py | ||
| utils.py | ||