Акведук каркас не генерирует миграции - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь сгенерировать миграцию из модели с помощью команды - "aqueduct db generate".

Это модель "request.dart" в lib> model (где у меня есть и другие модели, которые уже были перенесены без каких-либо проблем):

import 'package: dbapi / dbapi.dart';

Класс Request extends ManagedObject <_Request> реализует _Request {}

class _Request {

@ managedPrimaryKey

int index;

Строка описания;

}

Однако он создает пустую миграцию, потому что не может распознать новую модель - «Запрос». Ниже приведен вывод "aqueduct db generate"

-- Aqueduct CLI Version: 2.5.0+1
-- Aqueduct project version: 2.5.0+1
-- Replaying migration files...
Replaying version 1
Replaying version 2
Replaying version 3
 -- The following ManagedObject<T> subclasses were found:
     Question
     UserProfile

* If you were expecting more declarations, ensure the files are visible in the application library file.

  -- Created new migration file (version 4).

примечание: новая модель "request.dart" имеет те же права доступа к файлам, что и предыдущие модели, которые я мог перенести.

Кто-нибудь еще сталкивался с такой же проблемой? Ценю помощь!

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Как сказал Джо Конуэй, мне пришлось импортировать подкласс ManagedObject в мой контроллер:

import 'package:my_project/model/my_model.dart';

После запуска

aqueduct db generate

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

0 голосов
/ 03 июля 2018

Файл request.dart должен быть импортирован (напрямую или транзитивно) файлом библиотеки вашего приложения. В вашем случае это dbapi.dart.

Но маловероятно, что вы импортируете request.dart непосредственно в файл библиотеки. Вместо этого ваш библиотечный файл уже импортирует ваш файл RequestSink, который должен импортировать любые файлы контроллера, используемые приложением, и те должны импортировать любые модели, которые они используют.

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

...