编辑页面

可用数据库适配器

此页面旨在提供 Sails.js 框架所有核心适配器的最新完整列表,以及一些最强大的社区适配器的参考。

所有支持的适配器都可以通过大致相同的方式进行配置:传入 Sails/Waterline 适配器 (adapter) 以及连接 URL (url)。有关配置数据存储的更多信息,请参阅 sails.config.datastores

连接遇到问题?请确保检查连接 URL 中是否存在拼写错误。如果这不起作用,请查看数据库提供商的文档,或 获取帮助

官方支持的数据库适配器

#

以下核心适配器由 Sails.js 核心团队维护、测试和使用。

想帮助维护核心适配器?请先阅读 Sails 项目贡献指南

数据库技术 适配器 连接 URL 结构 适用于生产环境?
MySQL require('sails-mysql') mysql://user:password@host:port/database
PostgreSQL require('sails-postgresql') postgresql://user:password@host:port/database
MongoDB require('sails-mongo') mongodb://user:password@host:port/database
本地磁盘/内存 (内置,请参阅 sails-disk) n/a 否!

sails-mysql

#

MySQL 是世界上最流行的关系型数据库。

sails-mysql 的 NPM 包信息   许可证信息

npm install sails-mysql --save
adapter: 'sails-mysql',
url: 'mysql://user:password@host:port/database',
  • MySQL 的默认端口为 3306
  • 如果您计划在数据中保存特殊字符(例如表情符号),则可能需要设置数据存储的 charset 配置选项。要允许表情符号,请使用 charset: 'utf8mb4'。您可以在模型属性中使用 columnType 设置 来设置字符集。
  • 对于像 MySQL 和 PostgreSQL 这样的关系型数据库服务器,您可能需要首先使用 SequelPro 等免费工具或在命令行上的 MySQL REPL 中创建一个“数据库”(如果您是经验丰富的 SQL 用户)。习惯上会为您的应用程序专门创建一个数据库供其使用。
  • sails-mysql 适配器也与 Amazon Aurora 数据库 100% 兼容。
握手空闲超时错误
#

如果发现您的 Sails 应用程序与 MySQL 交互时遇到“握手空闲超时”错误,则可以使用 connectTimeout 选项增加超时时间。这 通常仅在 查询与计算密集型操作(例如,编译客户端 TypeScript 文件或在开发过程中运行 Webpack)并行运行时才需要。

例如,您可以将超时时间延长到 20 秒

adapter: 'sails-mysql',
url: 'mysql://user:password@host:port/database',
connectTimeout: 20000

sails-postgresql

#

PostgreSQL 是一种具有强大功能的现代关系型数据库。

sails-postgresql 的 NPM 包信息   许可证信息

npm install sails-postgresql --save
adapter: 'sails-postgresql',
url: 'postgresql://user:password@host:port/database',
  • PostgreSQL 的默认端口为 5432
  • 除了 adapterurl 之外,您可能还需要设置 ssl: true。这取决于您的 PostgreSQL 数据库服务器托管的位置。例如,连接到 Heroku 托管的 PostgreSQL 服务时需要 ssl: true
  • 请注意,在 pg 8.0 版中,语法已更新为 ssl: { rejectUnauthorized: false }
  • 兼容大多数版本的 Postgres。请参阅 此问题,了解有关与 Postgres >12 兼容性的更多信息。

sails-mongo

#

MongoDB 是领先的 NoSQL 数据库。

sails-mongo 的 NPM 包信息   许可证信息

npm install sails-mongo --save
adapter: 'sails-mongo',
url: 'mongodb://user:password@host:port/database',
  • MongoDB 的默认端口为 27017
  • 如果您的 Mongo 部署在单独的数据库中跟踪其内部凭据,则可能需要通过将 ?authSource=theotherdb 附加到连接 URL 的末尾来命名该数据库。
  • 通过连接 URL 中的查询字符串提供的其他 Mongo 配置设置 将传递到底层的 Mongo 驱动程序。

sails-disk

#

写入计算机的硬盘或已挂载的网络驱动器。不适用于大规模生产部署,但非常适合小型项目,并且在您可能并非始终都已设置数据库的环境中进行开发至关重要。此适配器与 Sails 捆绑在一起,并且无需任何配置即可开箱即用。

您还可以以仅内存模式操作sails-disk。有关详细信息,请参阅下面的设置表。

sails-disk 的 NPM 包信息   许可证信息

在每个 Sails 应用程序中都可开箱即用。

默认情况下配置为默认数据库。

sails-disk 的可选数据存储设置
#
设置 描述 类型 默认值
dir 放置数据库文件所在的目录。适配器为每个模型创建一个文件。 String .tmp/localDiskDb
inMemoryOnly 如果为true,则不会将任何数据库文件写入磁盘。相反,所有数据都将存储在内存中(并在应用程序停止运行时丢失)。 Boolean false
  • 您可以通过在config/datastores.js中的default数据存储中添加设置来配置默认的sails-disk适配器。

社区支持的数据库适配器

#

您的数据库是否不受任何核心适配器支持?好消息!Sails.js 和 Waterline 有许多不同的社区数据库适配器 可在 NPM 上使用

以下是一些亮点

数据库技术 适配器 维护者 实现的接口 稳定版本
Redis sails-redis Ryan Clough / Solnet Solutions 语义、可查询 NPM package info for sails-redis
MS SQL Server sails-MSSQLserver misterGF 语义、可查询 NPM package info for sails-sqlserver
OrientDB sails-orientDB appscot 语义、可查询、关联、可迁移 NPM package info for sails-orientdb
Oracle sails-oracleDB atiertant 语义、可查询 NPM package info for sails-oracledb
Oracle (AnyPresence) waterline-oracle-adapter AnyPresence 语义、可查询 Release info for AnyPresence/waterline-oracle-adapter
Oracle (存储过程) sails-oracle-SP Butonethoncho 语义、可查询 NPM package info for sails-oracle-sp
SAP HANA DB sails-HANA Enrico Battistella 语义、可查询 NPM package info for sails-hana
SAP HANA (AnyPresence) waterline-SAP-HANA-adapter AnyPresence 语义、可查询 Release info for AnyPresence/waterline-sap-hana-adapter
IBM DB2 sails-DB2 ibuildings Italia & Vincenzo Ferrari 语义、可查询 NPM package info for sails-db2
ServiceNow SOAP waterline-ServiceNow-SOAP Sungard Availability Services 语义、可查询 NPM package info for waterline-servicenow-soap
Cassandra sails-cassandra dtoubelis 语义、可迁移、可迭代 NPM package info for sails-cassandra
Solr sails-solr sajov 语义、可迁移、可查询 NPM package info for sails-solr
FileMaker 数据库 sails-FileMaker Geist Interactive 语义 NPM package info for sails-filemaker
Apache Derby sails-derby dash- 语义、可查询、关联、SQL NPM package info for sails-derby
REST API(通用) sails-REST zohararad 语义 NPM package info for sails-rest
将您的自定义适配器添加到此列表中
#

如果您在此页面上看到过时信息,或者您想添加自己制作的适配器,请向此文件提交拉取请求,更新上面的社区适配器表。

请注意,要列在此页面上,适配器必须

  1. 免费且开源(libregratis),最好是在 MIT 许可证下。
  2. 通过其 package.json 文件中声明的接口层的所有 Waterline 适配器测试。
  3. 支持通过连接 URL 进行配置,作为 url(如果适用)。

如果您发现上述任何社区适配器(即,针对 NPM 上发布的最新稳定版本,而不是针对 GitHub 上的代码)不符合这些约定中的任何一个,请与适配器的维护者联系。如果您无法联系到他们或需要进一步的帮助,请 Sails 核心团队成员联系。

是否缺少某些内容?

如果您注意到我们遗漏了某些内容或可以改进某些内容,请按照 此链接 并向 sails 存储库提交拉取请求。合并后,下次网站部署时,更改将反映在网站上。

概念