自从我搬到 Google App Engine 后,我无法运行 Flask-Migrate 命令python manage.py db migrate
,因为我对一些与 GAE 相关的导入有异常(No module named google.appengine.ext
例如)。
有没有办法运行这个或替代方法来升级我在 GAE 上的数据库?
自从我搬到 Google App Engine 后,我无法运行 Flask-Migrate 命令python manage.py db migrate
,因为我对一些与 GAE 相关的导入有异常(No module named google.appengine.ext
例如)。
有没有办法运行这个或替代方法来升级我在 GAE 上的数据库?
是的,有一种方法可以运行它,尽管它不像您希望的那样简单。
替换user
, password
, instance_id
, db_name
, 及path
以下
# migrate_prod.py
DB_MIGRATION_URI = "mysql+mysqldb://user:password@instance_id/db_name?ssl_key=path/client-key.pem&ssl_cert=path/client-cert.pem&&ssl_ca=path/server-ca.pem"
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from models import * # not needed if migration file is already generated
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = DB_MIGRATION_URI
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
manager.run()
像在本地迁移一样运行脚本:python migrate_prod.py db upgrade
假设您的迁移文件已经存在。
释放 IPv4,这样您就无需为此付费。
我非常感谢其他答案:如何通过 SSL 连接并在 GAE 上运行 alembic 迁移(这可能是重复的)。