name: Feature Request description: Suggest an idea or ask for a feature that you would like to have in SQLModel labels: [enhancement] body: - type: markdown attributes: value: | Thanks for your interest in SQLModel! 🚀 Please follow these instructions, fill every question, and do every step. 🙏 I'm asking this because answering questions and solving problems in GitHub issues is what consumes most of the time. I end up not being able to add new features, fix bugs, review pull requests, etc. as fast as I wish because I have to spend too much time handling issues. All that, on top of all the incredible help provided by a bunch of community members that give a lot of their time to come here and help others. If more SQLModel users came to help others like them just a little bit more, it would be much less effort for them (and you and me 😅). By asking questions in a structured way (following this) it will be much easier to help you. And there's a high chance that you will find the solution along the way and you won't even have to submit it and wait for an answer. 😎 As there are too many issues with questions, I'll have to close the incomplete ones. That will allow me (and others) to focus on helping people like you that follow the whole process and help us help you. 🤓 - type: checkboxes id: checks attributes: label: First Check description: Please confirm and check all the following options. options: - label: I added a very descriptive title to this issue. required: true - label: I used the GitHub search to find a similar issue and didn't find it. required: true - label: I searched the SQLModel documentation, with the integrated search. required: true - label: I already searched in Google "How to X in SQLModel" and didn't find any information. required: true - label: I already read and followed all the tutorial in the docs and didn't find an answer. required: true - label: I already checked if it is not related to SQLModel but to [Pydantic](https://github.com/samuelcolvin/pydantic). required: true - label: I already checked if it is not related to SQLModel but to [SQLAlchemy](https://github.com/sqlalchemy/sqlalchemy). required: true - type: checkboxes id: help attributes: label: Commit to Help description: | After submitting this, I commit to one of: * Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there. * I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future. * Implement a Pull Request for a confirmed bug. options: - label: I commit to help with one of those options 👆 required: true - type: textarea id: example attributes: label: Example Code description: | Please add a self-contained, [minimal, reproducible, example](https://stackoverflow.com/help/minimal-reproducible-example) with your use case. If I (or someone) can copy it, run it, and see it right away, there's a much higher chance I (or someone) will be able to help you. placeholder: | from typing import Optional from sqlmodel import Field, Session, SQLModel, create_engine class Hero(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) name: str secret_name: str age: Optional[int] = None hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson") engine = create_engine("sqlite:///database.db") SQLModel.metadata.create_all(engine) with Session(engine) as session: session.add(hero_1) session.commit() session.refresh(hero_1) print(hero_1) render: python validations: required: true - type: textarea id: description attributes: label: Description description: | What is your feature request? Write a short description telling me what you are trying to solve and what you are currently doing. placeholder: | * Create a Hero model. * Create a Hero instance. * Save it to a SQLite database. * I would like it to also automatically send me an email with all the SQL code executed. validations: required: true - type: textarea id: wanted-solution attributes: label: Wanted Solution description: | Tell me what's the solution you would like. placeholder: | I would like it to have a `send_email` configuration that defaults to `False`, and can be set to `True` to send me an email. validations: required: true - type: textarea id: wanted-code attributes: label: Wanted Code description: Show me an example of how you would want the code to look like. placeholder: | from typing import Optional from sqlmodel import Field, Session, SQLModel, create_engine class Hero(SQLModel, table=True, send_email=True): id: Optional[int] = Field(default=None, primary_key=True) name: str secret_name: str age: Optional[int] = None hero_1 = Hero(name="Deadpond", secret_name="Dive Wilson") engine = create_engine("sqlite:///database.db") SQLModel.metadata.create_all(engine) with Session(engine) as session: session.add(hero_1) session.commit() session.refresh(hero_1) print(hero_1) render: python validations: required: true - type: textarea id: alternatives attributes: label: Alternatives description: | Tell me about alternatives you've considered. placeholder: | To hire someone to look at the logs, write the SQL in paper, and then send me a letter by post with it. - type: dropdown id: os attributes: label: Operating System description: What operating system are you on? multiple: true options: - Linux - Windows - macOS - Other validations: required: true - type: textarea id: os-details attributes: label: Operating System Details description: You can add more details about your operating system here, in particular if you chose "Other". - type: input id: sqlmodel-version attributes: label: SQLModel Version description: | What SQLModel version are you using? You can find the SQLModel version with: ```bash python -c "import sqlmodel; print(sqlmodel.__version__)" ``` validations: required: true - type: input id: python-version attributes: label: Python Version description: | What Python version are you using? You can find the Python version with: ```bash python --version ``` validations: required: true - type: textarea id: context attributes: label: Additional Context description: Add any additional context information or screenshots you think are useful.