我有这个代码:
from sqlalchemy import Column, Integer, Text, String, TIMESTAMP, Boolean, \
UnicodeText
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.schema import Sequence, ForeignKey, Index
from zope.sqlalchemy import ZopeTransactionExtension
import datetime
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
class Users(Base):
__tablename__ = "user_table"
id = Column(Integer, Sequence('idseq'), primary_key = True)
email = Column(String, unique=True)
ip_addr = Column(String)
created_date = Column(TIMESTAMP(timezone=True), default=datetime.datetime.utcnow)
modified_date = Column(TIMESTAMP(timezone=True), default=datetime.datetime.utcnow)
#Index('user_index',Users.c.email)
我怎样才能
在alembic的env.py中,除了所有正常和默认行之外,我还有这两行
from tutorial.models import Base
.
.
.
target_metadata = Base.metadata
我的应用程序名称是tutorial。如果有需要,我会使用金字塔作为框架。和 postgres 作为数据库。
index=True
。Index
声明放在类定义之外:
class Users(Base):
__tablename__ = "user_table"
id = Column(Integer, Sequence('idseq'), primary_key=True)
email = Column(String, unique=True)
ip_addr = Column(String)
created_date = Column(TIMESTAMP(timezone=True), default=datetime.datetime.utcnow)
modified_date = Column(TIMESTAMP(timezone=True), default=datetime.datetime.utcnow)
Index('user_index', Users.c.email, Users.c.ip_addr)