python:如何使用内存数据库测试我的数据库模型?

python:如何使用内存数据库测试我的数据库模型?,python,postgresql,sqlalchemy,flask,alembic,Python,Postgresql,Sqlalchemy,Flask,Alembic,我正在Flask中开发一个项目,并使用SQLAlchemy作为ORM 我有一个用户型号 class User(UserMixin, db.Model): __tablename__ = 'users' # noinspection PyShadowingBuiltins uuid = Column('uuid', GUID(), default=uuid.uuid4, primary_key=True, unique=True)

我正在
Flask
中开发一个项目,并使用
SQLAlchemy
作为ORM
我有一个
用户
型号

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())
  • 我使用创建了一个迁移脚本
  • 我选择的数据库是
    PostgreSQL
    ,但为了测试我的模型,我更喜欢使用
    SQLite
    来加快测试速度
  • PostgreSQL
    中有一些类型,而
    SQLite
    中没有这些类型时,出现了问题,在本例中是
    UUID
  • 当我在
    sqlite://
    上运行迁移时,它会给出错误消息
AttributeError:“模块”对象没有属性“GUID”

问题
-如何使用
GUID
保留模式,并使用SQLite运行内存测试?似乎SQLite没有类似的东西

-当他们的数据库是
PostgreSQL

时,人们运行测试(在内存中)更快的一些方法是什么

无论如何,如果你想把东西保存在内存中……那么,把数据库保存在内存中吧。 实际上,PostgreSQL将频繁访问的数据移动到内存中,但无论如何,您可以安装一些RAMFS/RAMHDD解决方案并将您的数据库放在内存中,因此速度非常快


您可以通过谷歌搜索解决方案“postgresql on ramdisk”

一般来说,混合使用数据库后端进行测试、开发和发布不是一个好做法。见类似问题:和。