Запуск эмулятора хранилища данных на локальном хосте (Python3 Firestore в режиме хранилища данных) - PullRequest
0 голосов
/ 21 марта 2019

После нескольких часов попыток запустить эмулятор хранилища данных на локальном хосте следующие ресурсы из docs и здесь , и при этом все еще возникают проблемы с учетными данными, работающими на локальной машине (почему учетные данные на локальном хосте !? пока не знаю!) , мне грустно знать, что нет графического интерфейса для локального хранилища данных, как у нас было с dev_appserver.py для python 2.7, я также наконец-то удалось выяснить, что все тесты записи и запроса хранилища данных фактически сохраняются в реальном хранилище данных :(! К счастью, это не продукт.

Так что ...

  1. Если у кого-то есть четкие шагилокального запуска эмулятора хранилища данных ( Python3 firestore в режиме хранилища данных ), без синхронизации / записи / чтения в фактическое хранилище данных -localhost! Я был бы очень признателен за это
  2. Нам больше не нужен файл моделей? NDB больше не существует, и все записи выполняются, кажется, что запросы выполняются в виде словаря см. Здесь без предварительного определенияs для типов свойств ( StringProperty (), IntProperty () и т. д. ).Есть хорошие руководства по переходу от структуры NDB к новому Python 3?Ищите способ упорядочить вещи здесь.

ОБНОВЛЕНИЕ # 1 : Что касается вопроса № 1, очевидно, установка приведенных ниже переменных env позволяет запустить хранилище данных в localhost и не записать в проект фактическое хранилище данных, что является желаемым поведением.Мне пришлось запустить их в том же терминале / командной строке, которые я использую для запуска локального сервера, используя python main.py в среде python.Установка их на другом терминале / в командной строке не работала для меня.

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

$ gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd

Это установит следующие переменные

$ set DATASTORE_DATASET=<project-id>
$ set DATASTORE_EMULATOR_HOST=localhost:8081
$ set DATASTORE_EMULATOR_HOST_PATH=localhost:8081/datastore
$ set DATASTORE_HOST=http://localhost:8081
$ set DATASTORE_PROJECT_ID=<project-id>

Важное примечание: если вы запускаете эмулятор на терминале 1 и запускаете приложение локально с терминала 2, вам нужно установить переменную env DATASTORE_EMULATOR_HOSTтам также сказать вашему приложению использовать локальное хранилище данных перед запуском вашего приложения python main.py

$ set DATASTORE_EMULATOR_HOST=localhost:8081
$ python main.py
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...