Я установил Flask-Migrate и добавил необходимый код, но когда я запускаю «flask db init», он не может найти мою базу данных модели, которые я определил.
Это структура моего проекта:
Код: Выделить всё
sample_project/
├── __init__.py
├── api.py
└── db_models/
├── __init__.py
├── db.py
└── sample_model.py
Код: Выделить всё
def create_app(test_config=None):
migrate = Migrate()
app = Flask(__name__, instance_relative_config=True)
if test_config is None:
# load the instance config, if it exists, when not testing
app.config.from_object(os.environ['APP_SETTINGS'])
else:
# load the test config if passed in
app.config.from_mapping(test_config)
# ensure the instance folder exists
try:
os.makedirs(app.instance_path)
except OSError:
pass
db.init_app(app)
migrate.init_app(app, db)
with app.app_context():
db.create_all()
@app.route('/test', methods=['POST'])
def test():
return "Flask app is running"
return app
if __name__ == '__main__':
app = create_app()
app.run(debug=True, host='0.0.0.0')
Код: Выделить всё
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
Код: Выделить всё
from .db import db
class SampleModel(db.Model):
__tablename__ = 'analysis_fault_result'
id: Mapped[int] = mapped_column(primary_key=True)
name: Mapped[str]
age: Mapped[int]
Код: Выделить всё
flask db init
Код: Выделить всё
Error: While importing 'app.api', an ImportError was raised:
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/flask/cli.py", line 245, in locate_app
__import__(module_name)
File "/app/api.py", line 5, in
from sample_model.db import db
ModuleNotFoundError: No module named 'sample_model'
Подробнее здесь: https://stackoverflow.com/questions/787 ... -init-fail