SQLAlchemy Generator#

class besser.generators.sql_alchemy.sql_alchemy_generator.SQLAlchemyGenerator(model: DomainModel, output_dir: str = None)[source]#

Bases: GeneratorInterface

SQLAlchemyGenerator is a class that implements the GeneratorInterface and is responsible for generating SQLAlchemy code based on B-UML models.

Parameters:
  • model (DomainModel) – An instance of the DomainModel class representing the B-UML model.

  • output_dir (str, optional) – The output directory where the generated code will be saved. Defaults to None.

TYPES = {'bool': 'Boolean', 'date': 'Date', 'datetime': 'DateTime', 'float': 'Float', 'int': 'Integer', 'str': 'String(100)', 'time': 'Time'}#
VALID_DBMS = {'mariadb', 'mssql', 'mysql', 'postgresql', 'sqlite'}#
_abc_impl = <_abc._abc_data object>#
generate(dbms: str = 'sqlite')[source]#

Generates SQLAlchemy code based on the provided B-UML model and saves it to the specified output directory. If the output directory was not specified, the code generated will be stored in the <current directory>/output folder.

Parameters:
  • dbms (str, optional) – The database management system to be used. Values allowed: “sqlite”, “postgresql”, “mysql”,

  • "mssql"

  • "sqlite". (or "mariadb". Defaults to) –

Returns:

None, but stores the generated code as a file named sql_alchemy.py

get_foreign_keys()[source]#
get_ids()[source]#

Returns a dictionary with the class names as keys and the id attributes as values.

separate_classes()[source]#

Separates regular classes from association classes in the model.

Returns:

A tuple containing two lists (regular_classes, association_classes)

Return type:

tuple