【问题标题】:Aqueduct framework not generating migrations渡槽框架不产生迁移
【发布时间】:2018-07-03 06:33:37
【问题描述】:

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

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

导入'package:dbapi/dbapi.dart';

类 Request 扩展 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”与我可以迁移的以前模型具有相同的文件权限。

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

【问题讨论】:

    标签: dart aqueduct


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢乔!有效。我添加了 export 'model/request_invite.dart';到 dbapi.dart 并可以生成迁移。我将开始在控制器中使用它,这样我就不必将模型包含在 dbapi.dart 中。
    • 它甚至可以和import 'model/datafile.dart';一起使用
    【解决方案2】:

    正如 Joe Conway 所说,我必须将 ManagedObject 子类导入我的控制器:

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

    比运行后

    aqueduct db generate
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-27
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 2019-11-21
      • 2019-05-05
      • 1970-01-01
      相关资源
      最近更新 更多