Наше приложение использует колбу + Gunicorn.Теперь мы хотим, чтобы он мог перезагружать конфигурацию БД во время ее работы, что означает, что он может переключаться на новый БД без перезапуска процесса.С помощью центра конфигурации мы можем отправить конфигурацию во время выполнения, но как я могу повторно запустить глобальную базу данных varibale?
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
app.config.from_object(dynamic_config)
db.init_app(app)
И предположить через некоторое время.Мы отправляем новый конфиг, как db может быть инициализирован с новым конфигом?Или безопасно просто заменить его новым экземпляром SQLAlchemy ()?Как это сделать:
from models import set_db # which will set global db to new instance
from app import app
def callback(odl, new):
new_db = SQLAlchemy()
# re-construct config with old, and new
# now app.config is updated
new_db.init_app(app)
set_db(new_db)
Это нормально делать это?Что касается меня, это вызовет что-то вроде безопасности потоков и может разрушить транзакцию.
Помогите мне с этим, большое спасибо