Google app engine - перенос таблицы пользователей сайта из хранилища данных в mysql (CloudSQL) - PullRequest
0 голосов
/ 02 мая 2018

Наша компания находится в процессе переноса данных нашего веб-сайта Google App Engine из Google Cloud Datastore в mysql (если быть точным, в CloudSQL)

Я написал все процедуры преобразования для копирования всех текущих таблиц сущностей данных из хранилища данных в mysql, и я нахожусь в точке, где код в наших репозиториях нуждается в переписывании для взаимодействия с mysql вместо хранилища данных.

Практически все текущие сущности хранилища данных подкласса ndb.Model, кроме одной ключевой таблицы, наших пользовательских сущностей, которые наследуют от webapp2_extras.appengine.auth.models.User.

Создание подклассов из этого делает много приятных вещей за кулисами, таких как настройка уникальных записей и записей UserToken, а также настройка и обслуживание сеансов, настройка их при входе пользователя в систему и уничтожение их при выходе из системы. .

Теперь, когда пользовательская таблица будет жить в mysql, все эти тонкости, которые предоставляет хранилище данных, нужно будет реализовать отдельно, и я не знаю, с чего начать.

Каков наилучший способ достичь этого?

Сайт использует стандартную среду Google App Engine с использованием среды исполнения Python 2.7 с каркасом webapp2. Я использую SqlAlchemy для взаимодействия с экземпляром mysql в серверной части.

Любая помощь или совет по этому вопросу будет принята с благодарностью, и, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

1 Ответ

0 голосов
/ 24 мая 2018

Поиск по документам webapp2 Я нашел эту информацию.

http://webapp2.readthedocs.io/en/latest/tutorials/auth.html#login-with-sessions

Я немного поковырялся в Google SDK, чтобы увидеть те же методы интерфейса, настроенные в webapp2_extras.appengine.auth.models.User.

Я создал интерфейс AuthModel с основными свойствами, которые webapp2 должен был создать для сеанса, и я реализовал методы, описанные на странице. Методы вызывают запрос SqlAlchemy, который, в свою очередь, взаимодействует с классом пользователя SqlAlchemy, который я настроил, и позволяет мне возвращать параметры, необходимые для webapp2 и GAE, чтобы сделать остальное.

...