我刚刚决定将现有的 Sails 项目升级到 1.0.0,并设法完成大部分升级过程,直到我尝试连接到数据库。当尝试解除此错误时,我收到的错误是:
数据存储使用的适配器与 当前版本的 Sails/Waterline。default
适配器应公开有效的
。adapterApiVersion
如果您使用的是 Sails 1.0 的测试版,请尝试:
npm install --save sails-disk@beta
我的
datastores.js
文件包含以下内容:
module.exports.datastores = {
// In previous versions, datastores (then called 'connections') would only be loaded
// if a model was actually using them. Starting with Sails 1.0, _all_ configured
// datastores will be loaded, regardless of use. So we'll only include datastores in
// this file that were actually being used. Your original `connections` config is
// still available as `config/connections-old.js.txt`.
'developmentPostgres': {
adapter: require('sails-postgresql'),
url: process.env.postgresHost,
user: process.env.postgresUser,
password: process.env.postgresPassword,
database: process.env.postgresDatabase
}
};
所有值都作为环境变量提供。
"sails-postgresql": "^1.0.0"
安装并保存在 package.json
models.js
还包含以下行:datastore: 'developmentPostgres'
,据我了解,这意味着我的所有模型都应默认使用上述数据库。
到目前为止,升级过程非常简单。我想我在这里也错过了一些简单的东西。我将不胜感激任何人可以提供的任何见解,并且也很乐意提供任何其他信息。
结果该项目寻找标记为
default
的数据存储。将 default
和 datastore.js
中的名称更改为 model.js
解决了问题。
你可以查看我的回答如何连接MSSQL数据库:
它的工作方式相同,只需使用 sails-postgresql 适配器(https://www.npmjs.com/package/sails-postgresql)
从 0.12 版本迁移到 1.0 版本,使用 @sailshq/upgrade 包 (https://github.com/sailshq/upgrade-to-sails-v1)。它将帮助您扫描应用程序并检查应该更新哪些内容。
例如将connection.js重命名为datastores.js等。