我想添加一个tabble和列创建的注释。
所以我将doc参数添加到SQLAlchemy Column类的构造函数中。
但是不要在列中添加注释。
class Notice(db.Model):
__tablename__ = "tb_notice"
__table_args__ = {'mysql_engine': 'MyISAM'}
seqno = db.Column(db.Integer, primary_key=True, autoincrement=True, doc="seqno")
title = db.Column(db.String(200), nullable=False, doc="notice title")
detail = db.Column(db.TEXT, nullable=True, doc="notice detail ")
我想知道如何添加表的注释。
答案 0 :(得分:7)
评论 版本1.2中的新功能: http://docs.sqlalchemy.org/en/latest/core/metadata.html#sqlalchemy.schema.Column.params.comment
答案 1 :(得分:2)
根据doc
的{{3}}:
doc¶–可选字符串,可由ORM使用或类似于Python端的文档属性。此属性不呈现SQL注释;为此,请使用Column.comment参数。
还有comment
参数:
comment¶–可选字符串,将在表创建时呈现SQL注释。
请注意,comment
的1.2版中添加了SQlAlchemy
要在表中添加注释,只需将其他comment
属性(根据Table
类website)传递到__table_args__
字典中。在版本1.2中也添加了
代码将是这样的:
class Notice(db.Model):
__tablename__ = "tb_notice"
__table_args__ = {
'mysql_engine': 'MyISAM',
'comment': 'Notice table'
}
seqno = db.Column(db.Integer, primary_key=True, autoincrement=True, doc="seqno",
comment='Integer representing the sequence number')
title = db.Column(db.String(200), nullable=False, doc="notice title",
comment='Title of the notice, represented as a string')
detail = db.Column(db.TEXT, nullable=True, doc="notice detail",
comment='Notice detail description')
doc
属性充当您的类的文档字符串:
print(Notice.title.__doc__)
将输出:
notice title
现在相应的SQL
表创建语句将是:
CREATE TABLE `tb_notice` (
`seqno` int(11) NOT NULL COMMENT 'Integer representing the sequence number',
`title` varchar(200) NOT NULL COMMENT 'Title of the notice, represented as a string',
`detail` text COMMENT 'Notice detail description'
) ENGINE=MyISAM DEFAULT CHARSET=utf32 COMMENT='Notice table';
您可以看到注释已正确添加到表和列中。
答案 2 :(得分:1)
您可以在新的1.2版本中
class Notice(db.Model):
__tablename__ = "tb_notice"
__table_args__ = {
'mysql_engine': 'MyISAM'
'comment': 'yeah comment'
}