knexfile.js не читает переменные Dotenv - PullRequest
0 голосов
/ 23 мая 2018

Итак, я пробую 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, означающую, что файл уже был правильно загружен.

Может кто-нибудь помочь мне разобраться с этим?

1 Ответ

0 голосов
/ 24 мая 2018

Итак, после некоторых проб и ошибок я наконец понял, что случилось.Я не знаю, что вызвало это, но каким-то образом установка Knex не была выполнена должным образом ...

Я удалил и переустановил Knex (локальный и глобальный).Затем сначала я установил его на глобальном уровне, а затем в качестве зависимости.После этого я снова инициализировал Knex ($ knex init) и начал с нуля.

Я думаю, но я все еще не уверен, почему, потому что я не мог найти какую-либо информацию об этом, порядок установки Knex имеет значение (или имел значение в моем случае, и я даже не уверен, что я сделал неправильно в первый развремя).

На стороне

Если вы новичок в Knex и просто вслепую следите за случайным руководством / статьей и просто создаете новый файл для Knex (т.е. knexfile.js), Knex будетвсе еще работает, но другие пакеты могут не работать должным образом.Это то, чего я не вижу в большинстве статей, которые я нашел, прочитайте документацию о том, как сгенерировать необходимые файлы (миграции и семена).В большинстве статей эти шаги не рассматриваются должным образом.

Надеюсь, это чего-то стоит

...