【发布时间】:2013-03-20 03:54:36
【问题描述】:
我正在Flask 开发一个项目,并使用SQLAlchemy 作为 ORM
我有一个User 模型作为
class User(UserMixin, db.Model):
__tablename__ = 'users'
# noinspection PyShadowingBuiltins
uuid = Column('uuid', GUID(), default=uuid.uuid4, primary_key=True,
unique=True)
email = Column('email', String, nullable=False, unique=True)
_password = Column('password', String, nullable=False)
created_on = Column('created_on', sa.types.DateTime(timezone=True),
default=datetime.utcnow())
last_login = Column('last_login', sa.types.DateTime(timezone=True),
onupdate=datetime.utcnow())
- 我使用Alembic 创建了一个迁移脚本。
- 我选择的数据库是
PostgreSQL,但为了测试我的模型,我更喜欢使用SQLite来加快测试速度 - 当
PostgreSQL中存在某些类型而不在SQLite中时出现问题,在本例中为UUID - 当我在
sqlite://上运行迁移时,它给了我错误
AttributeError: 'module' 对象没有属性 'GUID'
问题
- 如何使用GUID 保留我的架构并使用 SQLite 运行内存测试?好像SQLite 没有类似的东西
- 当他们的数据库是PostgreSQL时,人们有哪些方法可以更快地运行测试(在内存中)
【问题讨论】:
-
一般来说,混合使用数据库后端进行测试、开发和发布并不是一个好习惯。查看类似问题:stackoverflow.com/questions/2716847/… 和 stackoverflow.com/questions/2685899/…。
标签: python postgresql sqlalchemy flask alembic