agronholm / agronholm/sqlacodegen

Add support for multiple databases binding

Open
#294 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
2.4k
Forks
284
Avg merge
2d 1h
Merged PRs (30d)
1

Description

### Things to check first

- [X] I have searched the existing issues and didn't find my feature already requested there

### Feature description

SQLAlchemy let you work with multiple databases.
In this case, apart from settings the connections with `SQLALCHEMY_BINDS` it's necessary to associate each `Model`/`Table` with the usage of the class attribute `__bind_key__` / the parameter `bind_key`, as described in the [documentation](https://flask-sqlalchemy.palletsprojects.com/en/3.1.x/binds/#defining-models-and-tables-with-binds).

It would be nice if this information could be handled by a new `option` - in addition to the ones described in the [readme](https://github.com/agronholm/sqlacodegen/tree/master#generator-specific-options) to automatically set this value.

### Use case

In my experience, the need of "reverse engineering" the data model from the db is when you want to import a "third-part" db.
In my current case, the "main" db is handled "normally" (I have a flask-based webapp, where I've defined the model, and used flask-sqlalchemy to generate the schema of the db), but I need to access this external db to fetch some additional data.
In this case - as is a "staging area" db, the schema is "out of my control". I can at most use `sqlacodegen` to infer the `Table`s in my project.
But - as things are - this also mean that the connection to this db is in addition to the "default one" I already use.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.