Невозможно удалить / создать таблицу с помощью gcloud flask-sqlalchemy - PullRequest
0 голосов
/ 20 сентября 2019

Когда я запускаю свой код локально и подключаюсь к базе данных gcloud sql через прокси, все работает.Таблицы удаляются и создаются.Когда я внедряю его в gcloud, я получаю (pymysql.err.InternalError) (1051, «Неизвестная таблица 'ticketing.user_role'») [SQL DROP TABLE user_role].Если я подключусь к базе данных на консоли gcloud, база данных плюс все таблицы будут там.

После развертывания кода в gcloud он не может удалить таблицы?Или есть какая-то конфигурация, которую мне нужно сделать в gcloud?Или что мешает ему уронить стол?- Спасибо

Единственное различие между локальным и развернутым - при создании базы данных.

'unix_socket': '/tmp/{}'.format(app.config['GCLOUD_SQL_INSTANCE'])
'unix_socket': '/cloudsql/{}'.format(app.config['GCLOUD_SQL_INSTANCE'])

Вот код для удаления / создания таблиц

def init_db():
    import models
    Base.metadata.drop_all(bind=engine)
    Base.metadata.create_all(bind=engine)

Если я закомментирую эти строки, он будет работать правильно.Я могу зарегистрироваться / войти в веб-приложение с помощью flask-security.

Вот код для user_role.Используется для защиты колб.

user_role = Table(
    'user_role',
    Base.metadata,
    Column('user_id', Integer, ForeignKey('user.id')),
    Column('role_id', Integer, ForeignKey('role.id')))

require.txt

flask==1.1.1
flask-security==3.0.0
flask-sqlalchemy==2.4.0
sqlalchemy-utils==0.34.2
bcrypt==3.1.7
PyMySQL==0.9..3
cryptography==2.7

Трассировка стека

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1051, "Unknown table 'ticketing.user_role'")
at raise_mysql_exception (/env/lib/python3.7/site-packages/pymysql/err.py:109)
at check_error (/env/lib/python3.7/site-packages/pymysql/protocol.py:220)
at _read_packet (/env/lib/python3.7/site-packages/pymysql/connections.py:684)
at read (/env/lib/python3.7/site-packages/pymysql/connections.py:1075)
at _read_query_result (/env/lib/python3.7/site-packages/pymysql/connections.py:732)
at query (/env/lib/python3.7/site-packages/pymysql/connections.py:517)
at _query (/env/lib/python3.7/site-packages/pymysql/cursors.py:328)
at execute (/env/lib/python3.7/site-packages/pymysql/cursors.py:170)
at do_execute (/env/lib/python3.7/site-packages/sqlalchemy/engine/default.py:552)
at _execute_context (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1249)
at reraise (/env/lib/python3.7/site-packages/sqlalchemy/util/compat.py:152)
at raise_from_cause (/env/lib/python3.7/site-packages/sqlalchemy/util/compat.py:398)
at _handle_dbapi_exception (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1473)
at _execute_context (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1253)
at _execute_ddl (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1050)
at _execute_on_connection (/env/lib/python3.7/site-packages/sqlalchemy/sql/ddl.py:72)
at execute (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:988)
at visit_table (/env/lib/python3.7/site-packages/sqlalchemy/sql/ddl.py:1002)
at traverse_single (/env/lib/python3.7/site-packages/sqlalchemy/sql/visitors.py:132)
at visit_metadata (/env/lib/python3.7/site-packages/sqlalchemy/sql/ddl.py:949)
at traverse_single (/env/lib/python3.7/site-packages/sqlalchemy/sql/visitors.py:132)
at _run_visitor (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1615)
at _run_visitor (/env/lib/python3.7/site-packages/sqlalchemy/engine/base.py:2046)
at drop_all (/env/lib/python3.7/site-packages/sqlalchemy/sql/schema.py:4320)
at init_db (/srv/database.py:38)
at <module> (/srv/main.py:77)
at import_app (/env/lib/python3.7/site-packages/gunicorn/util.py:350)
at load_wsgiapp (/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py:41)
at load (/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py:52)
at wsgi (/env/lib/python3.7/site-packages/gunicorn/app/base.py:67)
at load_wsgi (/env/lib/python3.7/site-packages/gunicorn/workers/base.py:138)
at init_process (/env/lib/python3.7/site-packages/gunicorn/workers/base.py:129)
at init_process (/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py:104)
at spawn_worker (/env/lib/python3.7/site-packages/gunicorn/arbiter.py:583)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...