Vapor的迁移API使您可以将数据库模式与API实现保持最新。绝大多数API涵盖了您的所有需求,但是偶尔需要一个完全自定义的SQL命令或设置,而API根本不支持。

拍摄者Alfons MoralesUnplash

一个例子是具有默认值的MySQL枚举。虽然通过API创建它们是可能的(尽管已经在使用。风俗()因此,已经部分一个原始查询)更新无法正常工作。

幸运的是,您可以落到低级SQL,并简单地运行一个完全原始的SQL命令,作为迁移的一部分。这是如何做:

- -

- -

蒸气流利的ORM允许您轻松地创建与SQL数据库表相对应的Swift结构的模型。数据库架构通常定义为migration自动创建和更新数据库表,根据您的应用程序的模型。

你会找到一些documentation on Vapor’s site on how to perform basic database migrations, but a lot is missing — including how to add indexes to your database tables.

拍摄者Jan Antonin Kolar

尽管不是Fluent直接支持的,但迁移API使您可以轻松地降低到较低的API。因此,您可以使用`sqlkit`添加这样的迁移了:

最后,不要忘记将结构添加到您的迁移中:

app.migrations.add(createversionscreateDatIndex())

- -

- -

Baidu