Appium Device Farm + Prisma (SQLite) — «Таблица main.Session не существует», несмотря на успешную отправку базы данных pAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Appium Device Farm + Prisma (SQLite) — «Таблица main.Session не существует», несмотря на успешную отправку базы данных p

Сообщение Anonymous »

Я пытаюсь настроить ферму устройств Appium с помощью Prisma в Windows 10, но даже несмотря на то, что Prisma успешно генерируется и prisma db push сообщает, что схема синхронизирована, плагин Appium не может подключиться к базе данных во время выполнения.
Моя настройка:

Код: Выделить всё

npm install -g appium@3.1.0
appium driver install --source=npm appium-uiautomator2-driver@6.1.0
appium plugin install --source=npm appium-device-farm@11.0.5
appium plugin install --source=npm appium-inspector-plugin@2025.8.2
Внутри
C:\Users\Andrei.appium\node_modules\appium-device-farm\prisma\schema.prisma
У меня есть стандартный источник данных SQLite:

Код: Выделить всё

datasource db {
provider = "sqlite"
url      = env("DATABASE_URL")
}
Мои версии CLI и клиента Prisma — 5.22.0.
Я успешно сгенерировал Prisma: npx prismagenerate
И отправил схему: npx prisma db push --force-reset
Это создало файл по адресу: C:\Users\Andrei\.appium\node_modules\appium-device-farm\prisma\dev.db
Я установил свой DATABASE_URL глобально: file:C:/Users/Andrei/.appium/node_modules/appium-device-farm/prisma/dev.db
А также попробовал с .env в том же каталоге. Когда я запускаю Prisma Studio (npx prisma studio), я вижу все модели (пользователя, сеанса, узла и т. д.), как и ожидалось.
🚨 Проблема: когда я запускаю Appium с плагинами:

Код: Выделить всё

appium server -pa /wd/hub --use-plugins=device-farm,inspector
Я получаю такой вывод (обрезанный):

Код: Выделить всё

[device-farm-main] Initializing storage
[device-farm-main] Initializing database
[device-farm-main] Creating new database: ./temp-appium/db.json
[device-farm-main] Database loaded
...
PrismaClientKnownRequestError:
Invalid `prisma.session.updateMany()` invocation:
The table `main.Session` does not exist in the current database.
...
Invalid `prisma.user.count()` invocation:
The table `main.User` does not exist in the current database.
...
Invalid `prisma.node.findFirst()` invocation:
The table `main.Node` does not exist in the current database.
Итак, несмотря на то, что база данных Prisma существует и db push работает,
Ферма устройств игнорирует ее и возвращается к ./temp-appium/db.json.
❓Вопрос
Как я могу заставить Appium Device Farm фактически использовать мою базу данных Prisma SQLite (dev.db) вместо возврата к temp-appium/db.json?
Есть ли определенное местоположение .env, флаг запуска Appium или конфигурация плагина, необходимая для того, чтобы ферма устройств могла получить DATABASE_URL Prisma в Windows?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ot-exist-d
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»