tiangolo / full-stack-fastapi-template

Full stack, modern web application template. Using FastAPI, React, SQLModel, PostgreSQL, Docker, GitHub Actions, automatic HTTPS and more.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to support FileField with SQLModel?

fqzhang42 opened this issue · comments

How to support FileField with SQLModel? I'm aware of sqlalchemy-file, which is for sqlalchemy to handle file field. Can we still use it with SQLModel?

Does this answer resolve your question?

from sqlalchemy import Column, String
from sqlalchemy_file import FileField, FileConverter

from sqlmodel import SQLModel, create_engine, Session

class MyModel(SQLModel):
    __tablename__ = "my_table"

    id = Column(Integer, primary_key=True)
    name = Column(String)
    file = Column(FileField(converter=FileConverter(url="uploads/")))  # Define file field and converter

engine = create_engine("sqlite:///my_database.db")
SQLModel.metadata.create_all(engine)

session = Session(engine)

# Example usage
new_model = MyModel(name="My File", file="path/to/your/file.txt")
session.add(new_model)
session.commit()

session.close()