我在某处看到您可以为整数列定义列大小(例如整数(20)、整数(10)等),但由于某种原因,sqlalchemy 似乎在它生成的创建表查询中忽略了这些大小通过create_all():
class Job(Base):
__tablename__ = "t_job"
id = Column(Integer(20), Sequence('%s_id_seq' % __tablename__), primary_key=True, nullable=False)
name = Column(String(30))
company_id = Column(Integer(20), ForeignKey("t_company.id", ondelete="CASCADE"), nullable=False)
产生以下查询:
CREATE TABLE t_job (
id INTEGER NOT NULL AUTO_INCREMENT,
name VARCHAR(30),
company_id INTEGER NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY(company_id) REFERENCES t_company (id) ON DELETE CASCADE
)
如果这不是正确的方法,那么什么才是正确的方法?
最佳答案
此功能是 deprecated in version 0.7 .
如果您使用 MySQL,则可以使用 mysql.INTEGER
数据类型:
from sqlalchemy.dialects import mysql
class Job(Base):
__tablename__ = "t_job"
id = Column(mysql.INTEGER(20), Sequence('%s_id_seq' % __tablename__), primary_key=True, nullable=False)
name = Column(String(30))
company_id = Column(Integer(20), ForeignKey("t_company.id", ondelete="CASCADE"), nullable=False)
关于python - sqlalchemy 整数列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15804685/