1

我正在尝试使用命令“aqueduct db generate”从模型生成迁移。

这是 lib > model 下的模型“request.dart”(我也有其他模型,它们已经迁移而没有任何问题):

导入“包:dbapi/dbapi.dart”;

类请求扩展 ManagedObject<_Request> 实现 _Request {}

类_请求{

@managedPrimaryKey

整数索引;

字符串描述;

}

然而,它正在创建一个空迁移,因为它无法识别新模型 - “请求”。以下是“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”与我可以迁移的以前模型具有相同的文件权限。

有没有其他人遇到同样的问题?感谢帮助!

4

2 回答 2

3

该文件request.dart必须由应用程序的库文件(直接或传递)导入。在你的情况下,这是dbapi.dart.

但是,您不太可能request.dart直接在库文件中导入。相反,您的库文件已经导入了您的RequestSink文件,该文件必须导入应用程序使用的任何控制器文件,并且必须导入它们使用的任何模型。

这里可能的情况是您尚未在代码中使用此类 - 一旦您开始在控制器或服务中使用它,迁移生成工具就会看到它。否则,您可以直接从请求接收器文件中导入它。

于 2018-07-03T13:47:38.420 回答
0

正如乔康威所说,我必须将ManagedObject子类导入我的控制器:

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

比运行后

aqueduct db generate

创建了正确的迁移文件。无论如何,我最终还是要在控制器中使用托管对象,但我还没有到那里,我想先生成迁移文件。

于 2019-05-31T18:37:00.193 回答