【问题记录】flask_migrate数据库迁移-Can‘t import MigrateCommand

背景介绍

当我在另一台电脑重新安装环境后,执行之前的项目,发现报错:
Can't import MigrateCommand from flask_migrate

解决方案

由于 flask_migrate高版本已经没有MigrateCommand ,所以此时我们该如何做数据库迁移

删除flask-script库及相关导入,因为高版本已经用不上这个

1.官方demo

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'

db = SQLAlchemy(app)
migrate = Migrate(app, db)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(128))

2.设置环境变量

此时,打开命令行终端,cd到项目所在目录

# 设置环境变量,假设上面的python文件名为manager.py
set set FLASK_APP=manager.py

3.数据库迁移

依次执行如下命令

flask db init
flask db migrate -m "init"
flask db update

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

问题记录

1.执行如下命令时,报错:Access denied

flask db migrate -m "init"

在这里插入图片描述
解决方案:
报错原因是远程访问数据库没有权限。

授予远程访问数据库的权限,myuser,mypassword替换为自己的数据库用户名和密码

# 允许所有ip
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

限制指定ip可访问,授予一个名为 ‘myuser’ 的用户从 IP 地址为 ‘192.168.9.1’ 的主机连接到 MySQL 数据库服务器

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.9.1' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

2.数据库迁移时,报错Unkown dataase
在这里插入图片描述
解决方案
问题原因是数据库中没有myapp这个库,需要先手动创建

create database myapp;

猜你喜欢

转载自blog.csdn.net/tyty2211/article/details/135071568
今日推荐