在同样的问题上摆弄了几个小时,我发现了一个解决方案.首先,这是我现在的结构:
. ← That's the root directory of my project
├── alembic.ini
├── dev-requirements.txt
├── requirements.txt
├── runtime.txt
├── setup.cfg
├── src
│ └── models
│ ├── base.py
│ ...
│ └── migrations
│ ├── env.py
│ ├── README
│ ├── script.py.mako
│ └── versions
│
└── tests
在env.py我只是这样做:
import sys
from os.path import abspath, dirname
sys.path.insert(0, dirname(dirname(dirname(abspath(__file__))))) # Insert <.>/src
import models # now it can be imported
target_metadata = models.base.Base.metadata
希望你觉得这个有用! 🙂
编辑:然后我做了我的第一次修改与数据库空(没有表),alembic自动填充所有升级()和降级().我这样做是因为并非所有的表都是由alembic自动检测到的.