【发布时间】:2011-10-10 19:16:06
【问题描述】:
我已将 SqlAlchemy-Migrate tutorial 上的教程修改为我的 Pylons Pyramid 项目的声明性语法。我可以成功升级和降级,但我担心下面的Base.metadata.drop_all(migrate_engine) 命令。这是我的迁移文件:
from sqlalchemy import Column
from sqlalchemy.types import Integer, String, DateTime
from sqlalchemy.sql import func
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from zope.sqlalchemy import ZopeTransactionExtension
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
email = Column(String(75), unique=True)
fullname = Column(String(60))
password = Column(String(51))
last_login = Column(DateTime)
date_joined = Column(DateTime, default=func.now())
def upgrade(migrate_engine):
# Upgrade operations go here. Don't create your own engine; bind migrate_engine
# to your metadata
Base.metadata.bind = migrate_engine
Base.metadata.create_all(migrate_engine) # IS THIS DANGEROUS?
def downgrade(migrate_engine):
# Operations to reverse the above upgrade go here.
Base.metadata.bind = migrate_engine
Base.metadata.drop_all(migrate_engine) # IS THIS DANGEROUS?
[编辑] 我的问题是如何单独创建表格。我不知道这是我的问题,直到问了足够多的错误问题,才得到正确的问题。
【问题讨论】:
标签: python orm sqlalchemy pylons pyramid