

def _create_table(self, model_class, safe=False):
    statement = ('CREATE TABLE IF NOT EXISTS' if safe else 'CREATE TABLE')
    meta = model_class._meta
    (columns, constraints) = ([], [])
    if meta.composite_key:
        pk_cols = [meta.fields[f].as_entity() for f in meta.primary_key.field_names]
        constraints.append(Clause(SQL('PRIMARY KEY'), EnclosedClause(*pk_cols)))
    for field in meta.sorted_fields:
        columns.append(self.field_definition(field))
        if (isinstance(field, ForeignKeyField) and (not field.deferred)):
            constraints.append(self.foreign_key_constraint(field))
    if model_class._meta.constraints:
        for constraint in model_class._meta.constraints:
            if (not isinstance(constraint, Node)):
                constraint = SQL(constraint)
            constraints.append(constraint)
    return Clause(SQL(statement), model_class.as_entity(), EnclosedClause(*(columns + constraints)))

dataset/ETHPy150Open coleifer/peewee/peewee.py QueryCompiler._create_table/original