fix: 数据库迁移报错"''"

This commit is contained in:
远野千束 2024-03-26 22:41:34 +08:00
parent 5d7c201018
commit 423ba84908

View File

@ -238,7 +238,7 @@ class Database:
# 检测缺失字段由于SQLite是动态类型所以不需要检测类型 # 检测缺失字段由于SQLite是动态类型所以不需要检测类型
for n_field, n_type in new_structure.items(): for n_field, n_type in new_structure.items():
if n_field not in existing_structure.keys() and n_field.lower() not in ["id", "table_name"]: if n_field not in existing_structure.keys() and n_field.lower() not in ["id", "table_name"]:
default_value = self.DEFAULT_MAPPING.get(n_type, "''") default_value = self.DEFAULT_MAPPING.get(n_type, 'NULL')
self.cursor.execute( self.cursor.execute(
f"ALTER TABLE '{model.TABLE_NAME}' ADD COLUMN {n_field} {n_type} DEFAULT {self.DEFAULT_MAPPING.get(n_type, default_value)}" f"ALTER TABLE '{model.TABLE_NAME}' ADD COLUMN {n_field} {n_type} DEFAULT {self.DEFAULT_MAPPING.get(n_type, default_value)}"
) )
@ -320,7 +320,7 @@ class Database:
"TEXT" : "''", "TEXT" : "''",
"INTEGER": 0, "INTEGER": 0,
"REAL" : 0.0, "REAL" : 0.0,
"BLOB" : b"", "BLOB" : None,
"NULL" : None "NULL" : None
} }