diff --git a/backend/app/generator/model/gen_model.py b/backend/app/generator/model/gen_model.py index 92fbc2b2..75f36bab 100644 --- a/backend/app/generator/model/gen_model.py +++ b/backend/app/generator/model/gen_model.py @@ -3,6 +3,7 @@ from typing import Union from sqlalchemy import ForeignKey, String +from sqlalchemy.dialects.mysql import LONGTEXT from sqlalchemy.orm import Mapped, mapped_column, relationship from backend.common.model import DataClassBase, id_key @@ -18,7 +19,7 @@ class GenModel(DataClassBase): comment: Mapped[str | None] = mapped_column(String(255), default=None, comment='列描述') type: Mapped[str] = mapped_column(String(20), default='str', comment='SQLA 模型列类型') pd_type: Mapped[str] = mapped_column(String(20), default='str', comment='列类型对应的 pydantic 类型') - default: Mapped[str | None] = mapped_column(String(50), default=None, comment='列默认值') + default: Mapped[str | None] = mapped_column(LONGTEXT, default=None, comment='列默认值') sort: Mapped[int | None] = mapped_column(default=1, comment='列排序') length: Mapped[int] = mapped_column(default=0, comment='列长度') is_pk: Mapped[bool] = mapped_column(default=False, comment='是否主键') diff --git a/backend/app/generator/service/gen_model_service.py b/backend/app/generator/service/gen_model_service.py index eee4d3cc..f826fcea 100644 --- a/backend/app/generator/service/gen_model_service.py +++ b/backend/app/generator/service/gen_model_service.py @@ -25,7 +25,7 @@ class GenModelService: if obj.name in [model.name for model in gen_models]: raise errors.ForbiddenError(msg='禁止添加相同列到模型表') pd_type = sql_type_to_pydantic(obj.type) - await gen_model_dao.create(db, obj, {'pd_type': pd_type}) + await gen_model_dao.create(db, obj, pd_type=pd_type) @staticmethod async def update(*, pk: int, obj: UpdateGenModelParam) -> int: @@ -35,7 +35,7 @@ class GenModelService: if obj.name in [model.name for model in gen_models]: raise errors.ForbiddenError(msg='禁止添加相同列到模型表') pd_type = sql_type_to_pydantic(obj.type) - count = await gen_model_dao.update(db, pk, obj, {'pd_type': pd_type}) + count = await gen_model_dao.update(db, pk, obj, pd_type=pd_type) return count @staticmethod diff --git a/backend/templates/py/model.jinja b/backend/templates/py/model.jinja index 9eabe680..4d6d8801 100644 --- a/backend/templates/py/model.jinja +++ b/backend/templates/py/model.jinja @@ -27,7 +27,7 @@ class {{ table_name_class }}({% if have_datetime_column %}Base{% else %}MappedBa None {%- else -%} {%- if model.default != None -%} - {{ model.default }} + '{{ model.default }}' {%- else -%} {%- if model.pd_type == 'str' -%} '' @@ -49,5 +49,5 @@ class {{ table_name_class }}({% if have_datetime_column %}Base{% else %}MappedBa '' {%- endif -%} {%- endif -%} - {%- endif -%}, sort_order={{ model.sort }}, comment='{{ model.comment }}') + {%- endif -%}{% if model.sort != 0 %}, sort_order={{ model.sort }}{% endif %}, comment='{{ model.comment }}') {% endfor %}