SQLAlchemy

This is the official documentation of the forestadmin-agent-django and forestadmin-agent-flask Python agents.

The SQLAlchemy data source allows importing collections from all models class that extends the class build with declarative_base or that inherit from sqlalchemy.orm.DeclarativeBase.

To make everything work as expected, you need to install the package sqlalchemy.

Note that:

  • SQLAlchemy relationships will be respected

from forestadmin.datasource_sqlalchemy.datasource import SqlAlchemyDatasource

from sqlalchemy.orm import DeclarativeBase
class Base(DeclarativeBase):
    pass
# or
from sqlalchemy.orm import declarative_base
Base = declarative_base()

agent.add_datasource(
    SqlAlchemyDatasource(
        Base,
        db_uri="postgres://user:pass@localhost:5432/myDatabase",
    )
)

the db_uri is mandatory only in the cases when the engine cannot be found in the base class.

engine = create_engine("postgres://user:pass@localhost:5432/myDatabase", echo=False)
Base = declarative_base(engine)
agent.add_datasource(SqlAlchemyDatasource(Base))

When using the package Flask-SQLAlchemy, the setup is a bit different. In most of the case, the db_uri is not needed

from forestadmin.datasource_sqlalchemy.datasource import SqlAlchemyDatasource
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
class Address(db.Model):
    __tablename__ = "address"
    id = Column(Integer, primary_key=True)
    # ...

agent.add_datasource(SqlAlchemyDatasource(db))

Last updated