vapor学习教程-Driver

Driver

Fluent 引擎下的动力来源于驱动程序,Fluent默认配有内存驱动并且有许多供应商提供了像MySQL, SQLite, Mongo, PostgreSQL等数据库的驱动程序。

vapor学习教程-Driver_第1张图片
Paste_Image.png

该图显示了使用 MySQL的驱动程序和提供程序之间的关系。 这种区别就是允许 Fluent独立于 Vapor而使用。
如果你想分离于 vapor而独立使用 Flunet,你就将驱动导入到你的包里,如果你使用 vapor,就将导入提供者。
搜索Github:

  • Fluent Drivers
  • Vapor Providers

并不是所有的驱动程序都有供应商,并不是所有的驱动程序或提供者都是最新的Vapor 1.0

Creating a Driver


Fluent是一个强大的数据库不可知软件包,用于持续化模型。它一开始的设计就是为了工作在关系型数据库和非关系型数据库。
符合Fluent.Driver的任何数据库将能够为FluentVapor提供模型。
驱动协议本身很简单的:

public protocol Driver {
    var idKey: String { get }
    func query(_ query: Query) throws -> Node
    func schema(_ schema: Schema) throws
    func raw(_ raw: String, _ values: [Node]) throws -> Node
}

ID Key


ID键将用于为User.find()提供功能。在SQL,它是id,在MongoDB,它是_id。

Query


Fluent对每个查询都会调用此方法。正确理解Query中所有属性的驱动程序工作,并返回由Node表示的所需行,文档或其他数据。

Schema


在数据库预期接受模式查询之前,将调用模式方法。对于某些NoSQL数据库(如MongoDB),可以忽略这个。对于 SQL,这是根据Schema来调用CREATE和其他类似命令。

Raw


这是一个可选的方法,可以被接受字符串查询的任何Fluent驱动程序使用。如果您的数据库不接受此类查询,则可能会抛出错误。


继续学习vapor学习教程-目录

你可能感兴趣的:(vapor学习教程-Driver)