我在做一个面试的技术测试。
这是一个在docker中运行的带有PostgreSQL的 flask 应用程序,并且已经使用了SqlAlchemy。不幸的是,我没有关于 flask 的知识,只有Django。
我已经添加了一个新的Model到我的应用程序,我需要做一个迁移来更新数据库,基本上是makemigrations
和migrate
在Django中所做的。
在我的docker应用程序中,我添加了alembic与pip install alembic
,然后我执行alembic init migrations
,其中添加了一个新的文件夹迁移与默认配置env.py
内。
然后我尝试运行alembic revision --autogenerate -m "add MySuperModel"
,但我得到了这个错误:sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:driver
我不知道我的思路是否正确。
我想做的是在我的 flask 应用程序中运行python manage.py makemigrations
和python manage.py migrate
,该应用程序已经使用了SqlAlchemy。
1条答案
按热度按时间42fyovps1#
序言
能够做到这一点实际上是非常重要的。使用
flask-sqlalchemy
开发的模型不能在flask
本身之外使用。有flask-migrate
,但 * 需要使用 *flask-sqlalchemy
。有this等指南解释了数据库的设置。甚至flask
本身与SQLAlchemy in Flask,以避免这种限制。当谈到alembic
为这个设置,我找不到任何东西。所以,这是最好的我有atm,并欢迎其他答案。使用
command
这是我迄今为止使用
commands
模块为一个名为ex_machina
的项目引入任意SQLAlchemy
模型时所得到的最好的结果。database.py位于项目的顶层。
消毒剂环境py
我不喜欢它,但是你可以用一个CLI来 Package 这个概念证明。我期待着一个更好的指南。