3

所以我正在尝试 knexjs,第一个设置就像一个魅力。我已经建立了我的连接,创建了一个数据结构,然后在我的终端中运行$ knex migrate:latest. 它一切正常... 迁移的表出现在我的数据库中,再次运行 migrate 并得到Already up to date.

现在这是我遇到问题的地方:使用 Dotenv ... 这是我的代码:

require('dotenv').config();

module.exports = {

        development: {

            client: process.env.DB_CLIENT,
            connection: {

                host: process.env.DB_HOST,

                user: process.env.DB_ROOT,
                password: process.env.DB_PASS,

                database: process.env.DB_NAME,
                charset: process.env.DB_CHARSET

            }
        }
};

据我所知,它没有任何问题,当我通过节点运行脚本时,没有出现错误。然后我想检查我是否仍然可以进行迁移,我收到以下错误:

错误:ER_ACCESS_DENIED_ERROR:用户''@'[MY IP]'的访问被拒绝(使用密码:是)

这次我只在我的.env文件中使用相同的变量。但是当我查看错误时,没有从中加载任何内容,是的knexfile.js.env都在我的项目的根目录中:) 我尝试的方法之一是以不同的方式设置路径,require('dotenv').config();但它会从 dotenv 含义中抛出错误该文件已正确加载。

谁能帮我解决这个问题?

4

1 回答 1

2

因此,经过反复试验,我终于弄清楚出了什么问题。我不知道是什么原因造成的,但不知何故 Knex 的安装没有正确完成......

我卸载并重新安装了 Knex(本地和全局)。然后首先我将它安装在全局级别,而不是作为依赖项。之后,我再次初始化了 Knex ( $ knex init) 并从头开始。

我想,但我仍然不确定为什么,因为我找不到任何关于它的信息,安装 Knex 的顺序很重要(或者在我的情况下很重要,我什至不确定我第一次做错了什么)。

在一边

如果您是 Knex 的新手,只是盲目地遵循随机教程/文章并为 Knex 创建一个新文件(即 knexfile.js),Knex 仍然可以工作,但其他包可能无法正确执行。这是我在我找到的大多数文章中看不到的内容,请阅读有关如何生成所需文件(迁移和种子)的文档。大多数文章都没有正确介绍这些步骤。

希望这是值得的

于 2018-05-24T10:44:25.557 回答