当前位置:
首页 > temp > python入门教程 >
-
flask-migrate迁移数据检测不到模型,无法新建表
flask项目目录示例:
project/ App/ __init__.py ext.py models/ __init__.py base.py users.py posts.py ... routes/ __init__.py home.py account.py dashboard.py ... templates/ base.html post.html ... services/ __init__.py google.py mail.py ... runserver.py README.md venv requirements/ dev.txt prod.txt
此文先上项目目录结构,跟着项目来看问题。
本文需要解决的问题是1.明确项目文件布局 2.迁移文件检测不到model,现象是migrations/versions目录下为空
1. ext.py
// App/ext.py from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy()
为什么需要一个单独的文件来实例化【SQLAlchemy】呢?
因为实例db在以后的models和runserver.py等多处会引用,避免循环引用。
2. __init__.py
// App/__init__.py from flask import Flask from app import config from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from app.models import * from app.ext import db migrate = Migrate() def create_app(): app = Flask(__name__) app.config.from_object(config) db.init_app(app) migrate.init_app(app, db) return app
这里比较重要的是 from app.models import * ,如果不导入models检测不到相应的模型
3. runserver.py
from app import create_app app = create_app() app.run()
4. 环境变量
export FLASK_APP=App.runserver
5. 迁移步骤
flask db init flask db migrate -m 'Intial ....' flask db upgrade
有一些历史文章是结合flask-script去解决的,现在不推荐了。
因为flask-script已经迁移到CLI,具体见https://www.cnblogs.com/lynsyklate/p/7693169.html
来源:https://www.cnblogs.com/zhengze/p/15475500.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数