in core/lib/sqlparse/models.py [0:0]
def to_sql(self):
column_segment = []
column_segment.append("`{}`".format(escape(self.name)))
if self.length is not None:
column_segment.append("{}({})".format(self.column_type, self.length))
else:
column_segment.append("{}".format(self.column_type))
if self.charset is not None:
column_segment.append("CHARACTER SET {}".format(self.charset))
if self.unsigned is not None:
column_segment.append("UNSIGNED")
if self.collate is not None:
column_segment.append("COLLATE {}".format(self.collate))
# By default MySQL will implicitly make column as nullable if not
# specified
if self.nullable or self.nullable is None:
column_segment.append("NULL")
else:
column_segment.append("NOT NULL")
if self.default is not None:
if self.is_default_bit:
column_segment.append("DEFAULT b{}".format(self.default))
else:
column_segment.append("DEFAULT {}".format(self.default))
if self.auto_increment is not None:
column_segment.append("AUTO_INCREMENT")
if self.comment is not None:
column_segment.append("COMMENT {}".format(self.comment))
return " ".join(column_segment)