亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在腳本中放置 flask-migrate --multidb 標志的位置?

在腳本中放置 flask-migrate --multidb 標志的位置?

精慕HU 2021-10-26 16:02:57
我需要將多個數據庫添加到我基于Miguel Grinberg 的 Flask Mega-Tutorial的舊版本編寫的程序中。我配置了幾個數據庫SQLALCHEMY_BINDS并且它們運行良好,但是當我將它們遷移到新版本時問題就出現了。三個數據庫沒有得到三個更新版本,而是在我的第一個數據庫中折疊成三個表。我從做一些研究中了解到,這是因為 Alembic 感到困惑,并將新版本一起放入第一個數據庫中,而其余兩個保持不變。我知道我需要添加--multidb 標志來解決這個問題。它通常是初始化的一部分:$ flask db init --multidb但我想知道我把它放在我根據他的教程 ( config.py, db_create.py, db_migrate.py, downgrade.py)編寫的腳本中的什么位置。我的猜測可能在db_migrate.py腳本的某個地方?或者也許是__init__.py文件?你能給我一個正確的方向嗎?謝謝!遷移.pyimport impfrom migrate.versioning import apifrom app import dbfrom config import SQLALCHEMY_DATABASE_URIfrom config import SQLALCHEMY_MIGRATE_REPOmigration = SQLALCHEMY_MIGRATE_REPO + '/versions/%03d_migration.py' %(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO) + 1)tmp_module = imp.new_module('old_model')old_model = api.create_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)exec old_model in tmp_module.__dict__script = api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, tmp_module.meta, db.metadata)open(migration, "wt").write(script)api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)print 'New migration saved as ' + migrationprint 'Current database version: ' + str(api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO))__init__.pyfrom flask import Flaskfrom flask.ext.socketio import SocketIO, emitfrom flask.ext.sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config.from_object('config')app.config['SECRET_KEY'] = 'shhhhhh!'socketio = SocketIO(app)db = SQLAlchemy(app)from app import views, models
查看完整描述

1 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

舊版本的教程沒有使用 Flask-Migrate,它使用基于與 Alembic 不同的遷移工具的本土解決方案。您無法真正將 Flask-Migrate/Alembic 放入這些腳本中,它們完全不兼容。

您可以查看本教程的新版本,特別是第 4 章,以了解如何使用 Flask-Migrate。


查看完整回答
反對 回復 2021-10-26
  • 1 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號