Fork of sqlacodegen by Alex Gronholm.
What's different:
- Support for Flask-SQLAlchemy syntax using
--flaskoption. - Defaults to generating backrefs in relationships.
--nobackrefstill included as option in case backrefs are not wanted. - Naming of backrefs is class name in snake_case (as opposed to CamelCase) and is pluralized if it's Many-to-One or Many-to-Many using inflect.
- Primary joins are explicit.
- If column has a server_default set it to
FetchValue()instead of trying to determine what that value is. Original code did not set the right server defaults in my setup. --ignore-colsignores special columns when generating association tables. Original code requires all columns to be foreign keys in order to generate association table. Example:--ignore-cols id,inserted,updated.- Uses the command
flask-sqlacodegeninstead ofsqlacodegen. - Added support for
--notablesto only generate model classes, even for association tables
With pip:
pip install flask-sqlacodegenWithout pip:
git clone https://github.com/ksindi/flask-sqlacodegen.git
cd flask-sqlacodegen/
python setup.py installFor contributing:
git clone https://github.com/ksindi/flask-sqlacodegen.git
python -m venv env
pip install -r requirements.txt
python -m sqlacodegen.main --flask --outfile models.py mysql+pymysql://<username>:<password>@<database-ip>:<port>/<database-name> [--tables <tablenames>] [--notables]