diff --git a/sqlmodel/_compat.py b/sqlmodel/_compat.py index 72ec8330f..490b6a62e 100644 --- a/sqlmodel/_compat.py +++ b/sqlmodel/_compat.py @@ -203,7 +203,9 @@ def get_field_metadata(field: Any) -> Any: for meta in field.metadata: if isinstance(meta, PydanticMetadata): return meta - return FakeMetadata() + fake = FakeMetadata() + fake.max_length = getattr(meta, "max_length", None) + return fake def post_init_field_info(field_info: FieldInfo) -> None: return None diff --git a/sqlmodel/sql/sqltypes.py b/sqlmodel/sql/sqltypes.py index 5a4bb04ef..72d95788c 100644 --- a/sqlmodel/sql/sqltypes.py +++ b/sqlmodel/sql/sqltypes.py @@ -14,7 +14,9 @@ class AutoString(types.TypeDecorator): # type: ignore def load_dialect_impl(self, dialect: Dialect) -> "types.TypeEngine[Any]": impl = cast(types.String, self.impl) - if impl.length is None and dialect.name == "mysql": + if impl.length is None and ( + dialect.name == "mysql" or dialect.name == "mariadb" + ): return dialect.type_descriptor(types.String(self.mysql_default_length)) return super().load_dialect_impl(dialect)