所以我正在尝试knexjs,第一个设置就像一个魅力。我已经建立了连接,创建了一个数据结构,在我的终端中我运行$ knex migrate:latest.
一切正常......我的数据库中出现的迁移表再次运行迁移并得到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:拒绝用户“@”[我的IP]的访问权限 (使用密码:是)
我这次只从我的.env
文件中使用相同的变量。但是,当我看到错误时,没有任何内容从中加载,是的,knexfile.js
和.env
都在我的项目的根目录中:)我尝试的事情之一是在不同的方式设置路径require('dotenv').config();
然后它会从dotenv抛出一个错误,意味着该文件已经正确加载。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
因此经过一些试验和错误,我终于弄明白了什么是错的。我不知道是什么导致了它,但不知怎的,Knex的安装没有正确完成......
我取消并重新安装Knex(本地和全球)。然后我首先将它安装在全局级别而不是作为依赖项。之后我再次初始化Knex($ knex init
)并从头开始。
我想,但我仍然不确定为什么因为我找不到任何关于它的信息,安装Knex的顺序很重要(或者在我的情况下很重要,我甚至不确定我第一次做错了什么)。
如果您是Knex的新手,只是盲目跟随随机教程/文章并为Knex创建一个新文件(即knexfile.js),Knex仍然可以工作,但其他软件包可能无法正常执行。这是我在大多数文章中都没有看到的,请阅读有关如何生成所需文件(迁移和种子)的文档。大多数文章都没有正确地介绍这些步骤。
希望这是值得的