无法在云上执行 flask-migrate 迁移 SQL

unable to perform flask-migrate migrations on cloud SQL

我正在尝试使用云 SQL 数据库实施 flask-migrate。 为此,我在云 sql 上创建了一个 PostgreSQL 实例。 以下是我的 app.py 文件

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


app = Flask(__name__)
DB_MIGRATION_URI = "postgresql://postgres:1234@public-ip/demo"
app.config['SQLALCHEMY_DATABASE_URI'] = DB_MIGRATION_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
migrate = Migrate(app, db)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(20))
    last_name = db.Column(db.String(20))
    # following = db1.relationship('Channel', secondary=user_channel, backref='followers')

    def __repr__(self):
        return f'<User: {self.name}>'

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

    def __repr__(self):
        return f'<Channel: {self.name}>'

我在 google 云 shell 上创建了这个,我正在连接并尝试 运行 迁移,所有内容都来自 google 云 shell。

当我第一次 运行“flask db migrate”时,一切都按预期进行。使用自动生成的迁移脚本生成了版本文件。

然后,我 运行“flask db 升级”,它也按预期工作。我可以看到数据库中的更改。

之后,我对 app.py 和 运行 中的模式进行了一些更改“flask db migrate -m “v2”它不起作用。无论我做什么,它都不会创建新版本 它给了我以下错误:

我尝试创建一个新数据库并将 URL 指向它,我停止并重新启动云 SQL 实例,但它仍然给我同样的错误。 有人可以帮我弄清楚发生了什么事吗?谢谢!

您可能使用了 gcloud sql connect 命令,这会将您的 IP 列入白名单 5 分钟。如果您在云 SQL 页面上单击“打开云 shell”,则会执行此命令。

您可以将您的 IP 再次列入白名单 5 分钟或使用云 sql 代理进行 longer-running 连接:https://cloud.google.com/sql/docs/mysql/connect-instance-auth-proxy