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

时间:2013-03-29 12:37:45

标签: python postgresql sqlalchemy flask alembic

我正在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

时,人们可以通过哪些方式更快地(在内存中)运行测试

1 个答案:

答案 0 :(得分:1)

如何使用SQLite加快测试速度?

无论如何,如果你想将内容保存在内存中......那么,请将数据库保存在内存中。 实际上PostgreSQL将经常访问的数据移动到内存中,但无论如何,你可以安装一些RAMFS / RAMHDD解决方案并将你的数据库放在那里,所以它会非常快

你可以谷歌寻求解决方案“postgresql on ramdisk”