-
Notifications
You must be signed in to change notification settings - Fork 3
Description
To help contributors understand the current state of the project and its goals, it would be great to have a set of issues to tackle to help hit an initial release. Here's some suggestions - I'd be happy to work on any of these, though I think the code cleanup should be done by @henadzit so he can feel confident when removing the quality warning :)
MVP
MySQL + MSSQL + Oracle Support
I'd argue that the goal should be to support all major databases that tortoise supports.
By package popularity, they're all pretty widely used. Async adoption is pretty low (mysql connector includes async support within, so it's hard to tell), but maybe we can help change that!
Stats:
mysql-connector-python10.4M/wkpymssql- 6.5M/wkpsycopg2- 6M/wkmysqlclient- 4.5M/wkasyncpg- 4.5M/wkaiosqlite- 4M/wkpsycopg- 4M/wkoracledb- 3.3M/wkasyncmy- 55K/wk (not the official connector)asyncodbc- 1K/wk
In-Depth Documentation
Full documentation around setup, supported features, testing, etc. See Django Migrations and other migration tool docs online for inspiration
End-to-end Tests for Postgres/MySQL/MSSQL/Oracle
This can be done with docker (and more simply with compose)
Code Review and Cleanup Pass
It's stated in the Readme that the code is AI generated and not final. Someone should run through it and create issue tickets for any large changes that need to be made so this project can rightfully be rid of the message :).
Contribution Guide
Something basic to help contributors know what the expected process is to make a change to the codebase, testing tools, coding standards, and philosophies.
Usability Pass
Go through all use cases of the tooling and sure all common issues, gotchas, and foot-guns are documented and have clear error messages that guide the user towards the fix.
Contact tortoise-orm Maintainers
Talk to tortoise-orm maintainers about what it would take to list this as an official migration tool or possibly succeed aerich if they're open to the idea. IMO It would be better to do this before launch in case they suggest any major changes.
Stretch Goals
Extended CLI Tooling
Ability to preview changes, dry run migrations, and possibly squash migrations?
Example Projects
Make example projects with migration scripts or custom CLIs
Project Configurability
Create a way for the ORM to be configured for the project using something like pyproject.toml instead of passing the tortoise config to every command. This could also open the door for more configuration options.
PyPI Release CI
To help any future maintainers publish and take advantage of Github's release feature, it would be great to set up a Github Action to push to PyPI on release.
Default Values
When a non-null field is added after a table is created, prompt the user for a default value