首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Sails v1在Postgresql上未定义的数据存储和模型

用Sails v1在Postgresql上未定义的数据存储和模型
EN

Stack Overflow用户
提问于 2018-04-09 08:42:05
回答 1查看 823关注 0票数 2

从V0.12升级后,我在sails V1上得到了以下错误。

代码语言:javascript
复制
      adapterMethodName: 'find',
      modelIdentity: 'users',
      raw: 
       { UsageError: Could not run select() because of 2 problems:
    ------------------------------------------------------
    • "datastore" is required, but it was not defined.
    • "models" is required, but it was not defined.
    ------------------------------------------------------

Please adjust your usage and try again.

我在registerDatastore中的节点_模块/ sails -postgresql/lib/Adapter.js文件中添加了一些打印,以查看我的设置在sails中是否正确,并且模型和数据存储被正确传递。然后,我在find函数中添加了一个打印,发现数据存储和modelDefinitions数组是空的。不知道应该在哪里填充,我可以自己分配,但我不想在node_modules中乱搞。我还尝试启动了一个新的Sails V1应用程序,只是将我的更改迁移到它上,结果是一样的。有什么建议会很感激的吗?

这里有一些特定于版本的详细信息

代码语言:javascript
复制
 : node        : v9.10.1
 : engine (v8) : 6.2.414.46-node.23
 : openssl     : 1.0.2o

我的配置

sails.config.datastores

代码语言:javascript
复制
  default: {
    adapter: 'sails-postgresql',
    host: 'localhost',
    port: 5432,
    user: 'xxx',
    password: 'xxx',
    database: 'xxx',
    ssl: false,
  },

sails.config.globals

代码语言:javascript
复制
module.exports.globals = {

  _: require('@sailshq/lodash'),

  async: require('async'),

  models: true,

  sails: true,

  services: true,

  adapters: true,

};

sails.config.env.development

代码语言:javascript
复制
 datastores: {
   default: {
      adapter: 'sails-postgresql',
      host: 'localhost',
      port: 5432,
      user: 'xxx',
      password: 'xxx',
      database: 'xxx',
      ssl: false,
    },
  },

启动时的一些详细打印:

代码语言:javascript
复制
verbo: grunt hook loaded successfully. (8ms)
     : Loading hook: orm
     : Loading the app's models and any custom adapters...
     : Loading app models...
     : Loading app adapters...
     : Loading hook: sockets
verbo: Loading adapter (`sails-postgresql`) from this app's `node_modules/` directory...
     : Starting ORM...
     : Registering model `file_types` in Waterline
.
.
.
.
verbo: orm hook loaded successfully. (1036ms)

package.json

代码语言:javascript
复制
"dependencies": {
    "@sailshq/connect-redis": "^3.2.1",
    "@sailshq/lodash": "^3.10.3",
    "@sailshq/socket.io-redis": "^5.2.0",
    "ajv": "^6.4.0",
    "async": "2.0.1",
    "bcrypt": "^1.0.3",
    "bugsnag": "^2.3.1",
    "child_process": "^1.0.2",
    "connect-redis": "^3.3.3",
    "crypto": "^1.0.1",
    "fs": "0.0.1-security",
    "gifsicle": "^3.0.4",
    "grunt": "1.0.1",
    "jsonwebtoken": "^8.2.1",
    "lodash": "^4.17.5",
    "machinepack-emailaddresses": "^0.4.0",
    "machinepack-redis": "^1.3.0",
    "moment": "^2.22.0",
    "passport": "^0.4.0",
    "passport-facebook": "^2.1.1",
    "passport-google-oauth": "^1.0.0",
    "passport-local": "^1.0.0",
    "request": "^2.85.0",
    "rsmq": "^0.8.3",
    "sails": "^1.0.0",
    "sails-hook-grunt": "^3.1.0",
    "sails-hook-orm": "^2.0.0-16",
    "sails-hook-sockets": "^1.4.0",
    "sails-postgresql": "^1.0.0",
    "sharp": "^0.20.1",
    "soap": "^0.24.0",
    "socket.io-redis": "^5.2.0",
    "ua-parser-js": "^0.7.17",
    "uuid": "^3.2.1",
    "uuid-validate": "0.0.2"
  },
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-09 20:00:55

在主分支上有一个解决这个问题的方法,但是它还没有被标记和推送到npm (虫277)。

显然,您的一个模型配置不正确,sails没有告诉您它是什么,因为错误。

因此,要解决这个问题,您应该从github url安装sails-postgresql的固定提交,启动sails来查看问题所在,修复它,然后重新安装您的常规sails-postgresql版本。

您可以通过纱线安装固定的主提交:yarn add https://github.com/balderdashy/sails-postgresql.git#1ead0f407231aa2139a73fc65e5ded608418a92d --save

通过npm:npm install https://github.com/balderdashy/sails-postgresql.git#1ead0f407231aa2139a73fc65e5ded608418a92d --save

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49728822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档