knexfile.js 不读取 Dotenv 变量
knexfile.js does not read Dotenv variables
所以我正在试用 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
}
}
};
据我所知,它没有任何问题,当我 运行 通过节点的脚本时,没有出现任何错误。
然后我想检查我是否仍然可以进行迁移,但我收到以下错误:
Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'[MY IP]'
(using password: YES)
这次我只使用我的 .env
文件中的相同变量。但是当我查看错误时,没有从中加载任何内容,是的,knexfile.js
和 .env
都在我的项目的根目录中 :) 我尝试过的事情之一是在内部以不同的方式设置路径require('dotenv').config();
但随后它会从 dotenv 中抛出错误,这意味着文件已经正确加载。
谁能帮我解决这个问题?
所以经过反复试验,我终于弄清楚出了什么问题。我不知道是什么原因造成的,但不知何故 Knex 的安装没有正确完成...
我卸载并重新安装了 Knex(本地和全局)。然后首先我将它安装在全局级别而不是作为依赖项。之后我再次初始化了 Knex ( $ knex init
) 并从头开始。
我想,但我仍然不确定为什么,因为我找不到任何关于它的信息,安装 Knex 的顺序很重要(或者对我来说很重要,我什至不确定我第一次做错了什么).
在旁边
如果您是 Knex 的新手,只是盲目地遵循随机 tutorial/article 并为 Knex 创建一个新文件(即 knexfile.js),Knex 仍然可以工作,但其他包可能无法执行适当地。这是我在发现的大多数文章中看不到的内容,请阅读有关如何生成所需文件(迁移和种子)的文档。大多数文章没有正确涵盖这些步骤。
希望这物有所值
所以我正在试用 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
}
}
};
据我所知,它没有任何问题,当我 运行 通过节点的脚本时,没有出现任何错误。 然后我想检查我是否仍然可以进行迁移,但我收到以下错误:
Error: ER_ACCESS_DENIED_ERROR: Access denied for user ''@'[MY IP]' (using password: YES)
这次我只使用我的 .env
文件中的相同变量。但是当我查看错误时,没有从中加载任何内容,是的,knexfile.js
和 .env
都在我的项目的根目录中 :) 我尝试过的事情之一是在内部以不同的方式设置路径require('dotenv').config();
但随后它会从 dotenv 中抛出错误,这意味着文件已经正确加载。
谁能帮我解决这个问题?
所以经过反复试验,我终于弄清楚出了什么问题。我不知道是什么原因造成的,但不知何故 Knex 的安装没有正确完成...
我卸载并重新安装了 Knex(本地和全局)。然后首先我将它安装在全局级别而不是作为依赖项。之后我再次初始化了 Knex ( $ knex init
) 并从头开始。
我想,但我仍然不确定为什么,因为我找不到任何关于它的信息,安装 Knex 的顺序很重要(或者对我来说很重要,我什至不确定我第一次做错了什么).
在旁边
如果您是 Knex 的新手,只是盲目地遵循随机 tutorial/article 并为 Knex 创建一个新文件(即 knexfile.js),Knex 仍然可以工作,但其他包可能无法执行适当地。这是我在发现的大多数文章中看不到的内容,请阅读有关如何生成所需文件(迁移和种子)的文档。大多数文章没有正确涵盖这些步骤。
希望这物有所值