transform=True for differing column types, refs #467

This commit is contained in:
Simon Willison 2022-08-27 16:00:54 -07:00
commit 6d4efd2949
2 changed files with 8 additions and 1 deletions

View file

@ -912,7 +912,7 @@ class Database:
if missing_columns: if missing_columns:
for col_name, col_type in missing_columns.items(): for col_name, col_type in missing_columns.items():
table.add_column(col_name, col_type) table.add_column(col_name, col_type)
if missing_columns or columns_to_drop: if missing_columns or columns_to_drop or columns != existing_columns:
should_transform = True should_transform = True
# Do we need to change the column order? # Do we need to change the column order?
if ( if (

View file

@ -1176,6 +1176,13 @@ def test_create_if_no_columns(fresh_db):
'CREATE TABLE "demo" (\n [id] INTEGER PRIMARY KEY,\n [name] TEXT,\n [age] INTEGER\n)', 'CREATE TABLE "demo" (\n [id] INTEGER PRIMARY KEY,\n [name] TEXT,\n [age] INTEGER\n)',
True, True,
), ),
# Change a column type
(
{"id": int, "name": bytes},
{"pk": "id"},
'CREATE TABLE "demo" (\n [id] INTEGER PRIMARY KEY,\n [name] BLOB\n)',
True,
),
# Change the primary key # Change the primary key
( (
{"id": int, "name": str}, {"id": int, "name": str},