我正在尝试使用 dataModel 和 persistenceStore 创建上下文...请按照下面的代码使用 PostgreSQL:
@override
Future prepare() async {
logger.onRecord.listen((rec) => print("$rec ${rec.error ?? ""} ${rec.stackTrace ?? ""}"));
final dataModel = ManagedDataModel.fromCurrentMirrorSystem();
final persistentStore = PostgreSQLPersistentStore.fromConnectionInfo(
"heroes_user", "password", "localhost", 5432, "heroes");
context = ManagedContext(dataModel, persistentStore);
}
我想使用 MySQL 而不是 PostgreSQL,我没有找到任何使用它的教程。
最佳答案
以下是使用另一种类型的数据库的一般过程:
- 查找 MySQL Dart 包。 (也许this one)
- 创建一个扩展 Aqueduct 的类
PersistentStore
. - 实现 MySQL 的抽象方法。 (作为引用,请参阅
PostgreSQLPersistentStore
在 PostgreSQL 中如何执行此操作。) - 如果您使用身份验证,请对
AuthServerDelegate
执行相同的操作。 (作为引用,请参阅ManagedAuthDelegate
在 PostgreSQL 中如何执行此操作。) - 创建大量测试来检查您的工作。
我的建议:
- 使用默认的 PostgreSQL 实现。与您自己实现 MySQL 的所有内容相比,学习所需的时间要少得多。默认实现可能也经过了更好的测试。使用 ORM,您甚至不需要使用太多原始 PostgreSQL 代码,这本身与原始 MySQL 代码没有显着差异。
- 您还可以查看 Angel服务器,它似乎比 Aqueduct 更加模块化,但您仍然需要实现自己的 MySQL 服务。请参阅this .
- 在不选择框架或数据库的情况下进行尽可能多的开发。作为干净架构的原则,这些都是细节。如果可能的话,将它们抽象出来。请参阅Clean architecture for the rest of us .
关于rest - 如何使用 Aqueduct 创建到 MySQL 的持久存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55861092/