Max*_*ank 7 sqlite pylons sqlalchemy auto-increment
嘿! 刚刚开始与Pylons一起使用SQLAlchemy,我的模型看起来像这样:
from sqlalchemy import Column
from sqlalchemy.types import Integer, String
from helloworld.model.meta import Base
class Person(Base):
__tablename__ = "person"
id = Column(Integer, primary_key=True)
name = Column(String(100))
email = Column(String(100))
def __init__(self, name='', email=''):
self.name = name
self.email = email
def __repr__(self):
return "<Person('%s')" % self.name
Run Code Online (Sandbox Code Playgroud)
为了避免sqlite重用可能已被删除的id,我想将AUTOINCREMENT添加到列"id".我查看了sqlalchemy的文档,看到可以发出sqlite_autoincrement.可以在此处找到给出此属性的示例.
sqlite_autoincrement似乎是在创建表本身时发出的,我只是想知道在使用模型的声明式样式时如何提供它.
sco*_*fey 19
尝试在传统(非声明性)数据定义样式中包含一个__table_args__带有要传递给Table构造函数的参数的属性,例如:
class Person(Base):
__tablename__ = "person"
__table_args__ = {'sqlite_autoincrement': True}
Run Code Online (Sandbox Code Playgroud)
如果你必须包含几个参数,请使用此表单(dict必须是最后一个):
__table_args__ = (
Unique('foo'),
# ...
{'sqlite_autoincrement': True}
)
Run Code Online (Sandbox Code Playgroud)
从Declarative SQLAlchemy文档的Table配置部分:
Column使用__table_args__class属性指定名称,元数据和映射参数以外的表参数.此属性适用于通常发送到Table构造函数的位置和关键字参数.
| 归档时间: |
|
| 查看次数: |
3935 次 |
| 最近记录: |