mirror of
				https://github.com/fastapi/sqlmodel.git
				synced 2025-11-01 02:43:22 +08:00 
			
		
		
		
	 a95bd3873d
			
		
	
	a95bd3873d
	
	
	
		
			
			* 🔧 Update config with new pymdown extensions * 📝 Update admonition blocks syntax * 📝 Update syntax for tabs with new pymdown extensions
		
			
				
	
	
		
			251 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			251 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Help SQLModel - Get Help
 | |
| 
 | |
| Do you like **SQLModel**?
 | |
| 
 | |
| Would you like to help SQLModel, other users, and the author?
 | |
| 
 | |
| Or would you like to get help with **SQLModel**?
 | |
| 
 | |
| There are very simple ways to help (several involve just one or two clicks).
 | |
| 
 | |
| And there are several ways to get help too.
 | |
| 
 | |
| ## Subscribe to the FastAPI and Friends newsletter
 | |
| 
 | |
| You can subscribe to the (infrequent) <a href="https://fastapi.tiangolo.com/newsletter" class="external-link" target="_blank">**FastAPI and friends** newsletter</a> to stay updated about:
 | |
| 
 | |
| * News about FastAPI and friends, including SQLModel 🚀
 | |
| * Guides 📝
 | |
| * Features ✨
 | |
| * Breaking changes 🚨
 | |
| * Tips and tricks ✅
 | |
| 
 | |
| ## Star **SQLModel** in GitHub
 | |
| 
 | |
| You can "star" SQLModel in GitHub (clicking the star button at the top right): <a href="https://github.com/tiangolo/sqlmodel" class="external-link" target="_blank">https://github.com/tiangolo/sqlmodel</a>. ⭐️
 | |
| 
 | |
| By adding a star, other users will be able to find it more easily and see that it has been already useful for others.
 | |
| 
 | |
| ## Watch the GitHub repository for releases
 | |
| 
 | |
| You can "watch" SQLModel in GitHub (clicking the "watch" button at the top right): <a href="https://github.com/tiangolo/sqlmodel" class="external-link" target="_blank">https://github.com/tiangolo/sqlmodel</a>. 👀
 | |
| 
 | |
| There you can select "Releases only".
 | |
| 
 | |
| By doing it, you will receive notifications (in your email) whenever there's a new release (a new version) of **SQLModel** with bug fixes and new features.
 | |
| 
 | |
| ## Connect with the author
 | |
| 
 | |
| You can connect with <a href="https://tiangolo.com" class="external-link" target="_blank">me (Sebastián Ramírez / `tiangolo`)</a>, the author.
 | |
| 
 | |
| You can:
 | |
| 
 | |
| * <a href="https://github.com/tiangolo" class="external-link" target="_blank">Follow me on **GitHub**</a>.
 | |
|     * See other Open Source projects I have created that could help you.
 | |
|     * Follow me to see when I create a new Open Source project.
 | |
| * <a href="https://twitter.com/tiangolo" class="external-link" target="_blank">Follow me on **Twitter**</a>.
 | |
|     * Tell me how you use SQLModel (I love to hear that).
 | |
|     * Hear when I make announcements or release new tools.
 | |
| * <a href="https://www.linkedin.com/in/tiangolo/" class="external-link" target="_blank">Connect with me on **Linkedin**</a>.
 | |
|     * Hear when I make announcements or release new tools (although I use Twitter more often 🤷♂).
 | |
| * Read what I write (or follow me) on <a href="https://dev.to/tiangolo" class="external-link" target="_blank">**Dev.to**</a> or <a href="https://medium.com/@tiangolo" class="external-link" target="_blank">**Medium**</a>.
 | |
|     * Read other ideas, articles, and read about tools I have created.
 | |
|     * Follow me to read when I publish something new.
 | |
| 
 | |
| ## Tweet about **SQLModel**
 | |
| 
 | |
| <a href="https://twitter.com/compose/tweet?text=I'm loving SQLModel because... https://github.com/tiangolo/sqlmodel cc: @tiangolo" class="external-link" target="_blank">Tweet about **SQLModel**</a> and let me and others know why you like it. 🎉
 | |
| 
 | |
| I love to hear about how **SQLModel** is being used, what you have liked in it, in which project/company are you using it, etc.
 | |
| 
 | |
| ## Help others with questions in GitHub
 | |
| 
 | |
| You can try and help others with their questions in:
 | |
| 
 | |
| * <a href="https://github.com/tiangolo/sqlmodel/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered" class="external-link" target="_blank">GitHub Discussions</a>
 | |
| * <a href="https://github.com/tiangolo/sqlmodel/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aquestion+-label%3Aanswered+" class="external-link" target="_blank">GitHub Issues</a>
 | |
| 
 | |
| In many cases you might already know the answer for those questions. 🤓
 | |
| 
 | |
| Just remember, the most important point is: try to be kind. People come with their frustrations and in many cases don't ask in the best way, but try as best as you can to be kind. 🤗
 | |
| 
 | |
| The idea is for the **SQLModel** community to be kind and welcoming. At the same time, don't accept bullying or disrespectful behavior towards others. We have to take care of each other.
 | |
| 
 | |
| ---
 | |
| 
 | |
| Here's how to help others with questions (in discussions or issues):
 | |
| 
 | |
| ### Understand the question
 | |
| 
 | |
| * Check if you can understand what is the **purpose** and use case of the person asking.
 | |
| 
 | |
| * Then check if the question (the vast majority are questions) is **clear**.
 | |
| 
 | |
| * In many cases the question asked is about an imaginary solution from the user, but there might be a **better** one. If you can understand the problem and use case better, you might be able to suggest a better **alternative solution**.
 | |
| 
 | |
| * If you can't understand the question, ask for more **details**.
 | |
| 
 | |
| ### Reproduce the problem
 | |
| 
 | |
| For most of the cases and most of the questions there's something related to the person's **original code**.
 | |
| 
 | |
| In many cases they will only copy a fragment of the code, but that's not enough to **reproduce the problem**.
 | |
| 
 | |
| * You can ask them to provide a <a href="https://stackoverflow.com/help/minimal-reproducible-example" class="external-link" target="_blank">minimal, reproducible, example</a>, that you can **copy-paste** and run locally to see the same error or behavior they are seeing, or to understand their use case better.
 | |
| 
 | |
| * If you are feeling too generous, you can try to **create an example** like that yourself, just based on the description of the problem. Just have in mind that this might take a lot of time and it might be better to ask them to clarify the problem first.
 | |
| 
 | |
| ### Suggest solutions
 | |
| 
 | |
| * After being able to understand the question, you can give them a possible **answer**.
 | |
| 
 | |
| * In many cases, it's better to understand their **underlying problem or use case**, because there might be a better way to solve it than what they are trying to do.
 | |
| 
 | |
| ### Ask to close
 | |
| 
 | |
| If they reply, there's a high chance you would have solved their problem, congrats, **you're a hero**! 🦸
 | |
| 
 | |
| * Now, if that solved their problem, you can ask them to:
 | |
| 
 | |
|     * In GitHub Discussions: mark the comment as the **answer**.
 | |
|     * In GitHub Issues: **close** the issue**.
 | |
| 
 | |
| ## Watch the GitHub repository
 | |
| 
 | |
| You can "watch" SQLModel in GitHub (clicking the "watch" button at the top right): <a href="https://github.com/tiangolo/sqlmodel" class="external-link" target="_blank">https://github.com/tiangolo/sqlmodel</a>. 👀
 | |
| 
 | |
| If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, or discussions, or PRs, etc.
 | |
| 
 | |
| Then you can try and help them solve those questions.
 | |
| 
 | |
| ## Ask Questions
 | |
| 
 | |
| You can <a href="https://github.com/tiangolo/sqlmodel/discussions/new?category=questions" class="external-link" target="_blank">create a new question</a> in the GitHub repository, for example to:
 | |
| 
 | |
| * Ask a **question** or ask about a **problem**.
 | |
| * Suggest a new **feature**.
 | |
| 
 | |
| **Note**: if you do it, then I'm going to ask you to also help others. 😉
 | |
| 
 | |
| ## Review Pull Requests
 | |
| 
 | |
| You can help me review pull requests from others.
 | |
| 
 | |
| Again, please try your best to be kind. 🤗
 | |
| 
 | |
| ---
 | |
| 
 | |
| Here's what to have in mind and how to review a pull request:
 | |
| 
 | |
| ### Understand the problem
 | |
| 
 | |
| * First, make sure you **understand the problem** that the pull request is trying to solve. It might have a longer discussion in a GitHub Discussion or issue.
 | |
| 
 | |
| * There's also a good chance that the pull request is not actually needed because the problem can be solved in a **different way**. Then you can suggest or ask about that.
 | |
| 
 | |
| ### Don't worry about style
 | |
| 
 | |
| * Don't worry too much about things like commit message styles, I will squash and merge customizing the commit manually.
 | |
| 
 | |
| * Also don't worry about style rules, there are already automatized tools checking that.
 | |
| 
 | |
| And if there's any other style or consistency need, I'll ask directly for that, or I'll add commits on top with the needed changes.
 | |
| 
 | |
| ### Check the code
 | |
| 
 | |
| * Check and read the code, see if it makes sense, **run it locally** and see if it actually solves the problem.
 | |
| 
 | |
| * Then **comment** saying that you did that, that's how I will know you really checked it.
 | |
| 
 | |
| /// info
 | |
| 
 | |
| Unfortunately, I can't simply trust PRs that just have several approvals.
 | |
| 
 | |
| Several times it has happened that there are PRs with 3, 5 or more approvals, probably because the description is appealing, but when I check the PRs, they are actually broken, have a bug, or don't solve the problem they claim to solve. 😅
 | |
| 
 | |
| So, it's really important that you actually read and run the code, and let me know in the comments that you did. 🤓
 | |
| 
 | |
| ///
 | |
| 
 | |
| * If the PR can be simplified in a way, you can ask for that, but there's no need to be too picky, there might be a lot of subjective points of view (and I will have my own as well 🙈), so it's better if you can focus on the fundamental things.
 | |
| 
 | |
| ### Tests
 | |
| 
 | |
| * Help me check that the PR has **tests**.
 | |
| 
 | |
| * Check that the tests **fail** before the PR. 🚨
 | |
| 
 | |
| * Then check that the tests **pass** after the PR. ✅
 | |
| 
 | |
| * Many PRs don't have tests, you can **remind** them to add tests, or you can even **suggest** some tests yourself. That's one of the things that consume most time and you can help a lot with that.
 | |
| 
 | |
| * Then also comment what you tried, that way I'll know that you checked it. 🤓
 | |
| 
 | |
| ## Create a Pull Request
 | |
| 
 | |
| You can [contribute](contributing.md){.internal-link target=_blank} to the source code with Pull Requests, for example:
 | |
| 
 | |
| * To fix a typo you found on the documentation.
 | |
| * To propose new documentation sections.
 | |
| * To fix an existing issue/bug.
 | |
|     * Make sure to add tests.
 | |
| * To add a new feature.
 | |
|     * Make sure to add tests.
 | |
|     * Make sure to add documentation if it's relevant.
 | |
| 
 | |
| ## Help Maintain SQLModel
 | |
| 
 | |
| Help me maintain **SQLModel**! 🤓
 | |
| 
 | |
| There's a lot of work to do, and for most of it, **YOU** can do it.
 | |
| 
 | |
| The main tasks that you can do right now are:
 | |
| 
 | |
| * [Help others with questions in GitHub](#help-others-with-questions-in-github){.internal-link target=_blank} (see the section above).
 | |
| * [Review Pull Requests](#review-pull-requests){.internal-link target=_blank} (see the section above).
 | |
| 
 | |
| Those two tasks are what **consume time the most**. That's the main work of maintaining SQLModel.
 | |
| 
 | |
| If you can help me with that, **you are helping me maintain SQLModel** and making sure it keeps **advancing faster and better**. 🚀
 | |
| 
 | |
| ## Join the chat
 | |
| 
 | |
| Join the 👥 <a href="https://discord.gg/VQjSZaeJmf" class="external-link" target="_blank">FastAPI and Friends Discord chat server</a> 👥 and hang out with others in the community. There's a `#sqlmodel` channel.
 | |
| 
 | |
| /// tip
 | |
| 
 | |
| For questions, ask them in <a href="https://github.com/tiangolo/sqlmodel/discussions/new?category=questions" class="external-link" target="_blank">GitHub Discussions</a>, there's a much better chance you will receive help there.
 | |
| 
 | |
| Use the chat only for other general conversations.
 | |
| 
 | |
| ///
 | |
| 
 | |
| ### Don't use the chat for questions
 | |
| 
 | |
| Have in mind that as chats allow more "free conversation", it's easy to ask questions that are too general and more difficult to answer, so, you might not receive answers.
 | |
| 
 | |
| In GitHub, the template will guide you to write the right question so that you can more easily get a good answer, or even solve the problem yourself even before asking. And in GitHub I can make sure I always answer everything, even if it takes some time. I can't personally do that with the chat. 😅
 | |
| 
 | |
| Conversations in the chat are also not as easily searchable as in GitHub, so questions and answers might get lost in the conversation.
 | |
| 
 | |
| On the other side, there are thousands of users in the chat, so there's a high chance you'll find someone to talk to there, almost all the time. 😄
 | |
| 
 | |
| ## Sponsor the author
 | |
| 
 | |
| You can also financially support the author (me) through <a href="https://github.com/sponsors/tiangolo" class="external-link" target="_blank">GitHub sponsors</a>.
 | |
| 
 | |
| There you could buy me a coffee ☕️ to say thanks. 😄
 | |
| 
 | |
| ## Sponsor the tools that power SQLModel
 | |
| 
 | |
| As you have seen in the documentation, SQLModel stands on the shoulders of giants, Pydantic and SQLAlchemy.
 | |
| 
 | |
| You can also sponsor:
 | |
| 
 | |
| * <a href="https://github.com/sponsors/samuelcolvin" class="external-link" target="_blank">Samuel Colvin (Pydantic)</a>
 | |
| * <a href="https://github.com/sponsors/sqlalchemy" class="external-link" target="_blank">SQLAlchemy</a>
 | |
| 
 | |
| ---
 | |
| 
 | |
| Thanks! 🚀
 |