2016-02-14 3 views
5

У меня есть приложение Flask, которое использует SQLAlchemy (Flask-SQLAlchemy) и Alembic (Flask-Migrate). Приложение работает в Google App Engine. Я хочу использовать Google Cloud SQL.Запуск миграции Alembic в Google App Engine

На моей машине я запускаю python manage.py db upgrade для выполнения моих миграций против моей локальной базы данных. Поскольку GAE не разрешает выполнение произвольных команд оболочки, как мне выполнить миграции на нем?

ответ

1
1

Вы можете использовать белый IP-адрес своего локального компьютера для экземпляра Google Cloud SQL, после чего вы запускаете скрипт на своем локальном компьютере.

+0

Это на самом деле то, что я закончил делать. Однако присвоение IPV4-адреса экземпляру SQL стоит 0,01 долл./Ч = 7,2 долл./Мес. Если бы был способ автоматизировать получение адреса, запуск миграции, а затем его выпуск, я был бы счастливым кемпером – gberger

+0

, вы можете использовать gcloud sql instance patch --assign-ip, gcloud sql instance patch --no-assign -ip для назначения/отмены назначения IP-адреса – Vadim

0

Это всего лишь код, который вы можете запустить, так что вы можете создать администратор конечную точку, с которой осуществить обновление:

@app.route('/admin/dbupgrade') 
def dbupgrade(): 
    from flask_migrate import upgrade, Migrate 
    migrate = Migrate(app, db) 
    upgrade(directory=migrate.directory) 
    return 'migrated' 

(Dropwizard, например, обслуживает хорошо для таких администраторов вещей с помощью tasks)

Смежные вопросы