如何使用 Aqueduct 创建 MySQL 的 persistentStore?
How create a persistentStore to MySQL with Aqueduct?
我正在尝试使用 dataModel 和 persistentStore 创建上下文...按照以下代码使用 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)
- 创建一个 class 来扩展 Aqueduct 的
PersistentStore
。
- 实现 MySQL 的抽象方法。 (作为参考,请参阅
PostgreSQLPersistentStore
如何在 PostgreSQL 中执行此操作。)
- 如果您使用身份验证,请对
AuthServerDelegate
. (For reference, see how ManagedAuthDelegate
在 PostgreSQL 中执行相同的操作。)
- 创建大量测试来检查您的工作。
我的推荐:
- 使用默认的 PostgreSQL 实现。与 MySQL 自己实现所有内容相比,学习所需的时间要少得多。默认实现可能也经过了更好的测试。使用 ORM,您甚至不会使用太多原始 PostgreSQL 代码,它本身与原始 MySQL 代码没有显着差异。
- 您还可以查看 Angel server, which seems to be more modular than Aqueduct, but you are still going to have to implement your own MySQL service. See this。
- 在不选择框架或数据库的情况下,尽可能多地进行开发。作为干净架构的原则,这些都是细节。如果可能,将它们抽象出来。参见 Clean architecture for the rest of us。
我正在尝试使用 dataModel 和 persistentStore 创建上下文...按照以下代码使用 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)
- 创建一个 class 来扩展 Aqueduct 的
PersistentStore
。 - 实现 MySQL 的抽象方法。 (作为参考,请参阅
PostgreSQLPersistentStore
如何在 PostgreSQL 中执行此操作。) - 如果您使用身份验证,请对
AuthServerDelegate
. (For reference, see howManagedAuthDelegate
在 PostgreSQL 中执行相同的操作。) - 创建大量测试来检查您的工作。
我的推荐:
- 使用默认的 PostgreSQL 实现。与 MySQL 自己实现所有内容相比,学习所需的时间要少得多。默认实现可能也经过了更好的测试。使用 ORM,您甚至不会使用太多原始 PostgreSQL 代码,它本身与原始 MySQL 代码没有显着差异。
- 您还可以查看 Angel server, which seems to be more modular than Aqueduct, but you are still going to have to implement your own MySQL service. See this。
- 在不选择框架或数据库的情况下,尽可能多地进行开发。作为干净架构的原则,这些都是细节。如果可能,将它们抽象出来。参见 Clean architecture for the rest of us。