SQLite
SQLite 数据源连接器将 Prisma ORM 连接到 SQLite 数据库文件。这些文件始终具有文件扩展名 .db
(例如:dev.db
)。
默认情况下,SQLite 连接器包含一个负责连接到数据库的数据库驱动程序。您可以使用 驱动程序适配器(预览版)使用 Prisma Client 中的 JavaScript 数据库驱动程序连接到您的数据库。
示例
要连接到 SQLite 数据库文件,您需要在您的 Prisma Schema 中配置一个 datasource
块
schema.prisma
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
传递给 datasource
块的字段是
provider
:指定sqlite
数据源连接器。url
:指定 连接 URL 用于 SQLite 数据库。连接 URL 始终以前缀file:
开头,然后包含指向 SQLite 数据库文件的路径。在本例中,该文件位于同一目录中,名为dev.db
。
SQLite 到 Prisma Schema 之间的类型映射
SQLite 连接器将 标量类型 从 数据模型 映射到本机列类型,如下所示
或者,请参阅 Prisma Schema 参考,了解按 Prisma ORM 类型组织的类型映射。
从 Prisma ORM 到 SQLite 的本机类型映射
Prisma ORM | SQLite |
---|---|
String | TEXT |
Boolean | BOOLEAN |
Int | INTEGER |
BigInt | INTEGER |
Float | REAL |
Decimal | DECIMAL |
DateTime | NUMERIC |
Json | 不支持 |
Bytes | BLOB |
大数字上的舍入误差
SQLite 是一个松散类型的数据库。如果您的 Schema 具有 Int
类型的字段,那么 Prisma ORM 会阻止您插入大于整数的值。但是,没有任何东西可以阻止数据库直接接受更大的数字。这些手动插入的大数字会在查询时导致舍入误差。
为了避免此问题,Prisma ORM 4.0.0 及更高版本会在数据从数据库中取出时检查数字,以验证它们是否适合整数范围。如果数字不适合,那么 Prisma ORM 会抛出一个 P2023 错误,例如
Inconsistent column data: Conversion failed:
Value 9223372036854775807 does not fit in an INT column,
try migrating the 'int' column type to BIGINT
连接详细信息
连接 URL
SQLite 连接器的连接 URL 指向文件系统上的一个文件。例如,以下两个路径是等效的,因为 .db
位于同一目录中
schema.prisma
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
与
schema.prisma
datasource db {
provider = "sqlite"
url = "file:dev.db"
}
您还可以从根目录或文件系统中的任何其他位置定位文件
schema.prisma
datasource db {
provider = "sqlite"
url = "file:/Users/janedoe/dev.db"
}