#connection #typeorm #nrwl-nx
#соединение #typeorm #nrwl-nx
Вопрос:
У меня есть проект NX mono repo, в котором я хочу использовать typeorm. Файл конфигурации ormconfig.json
находится в корне рабочей области (в той же папке package.json), и это содержимое:
{
"name": "default",
"type": "sqlite",
"database": "data/db.sql",
"logging": true,
"entities": ["libs/database/src/entities/*.entity.{ts,js}"],
"migrations": ["libs/database/src/migrations/*.{ts,js}"],
"cli": {
"entitiesDir": "libs/database/src/entities",
"migrationsDir": "libs/database/src/migrations",
"subscribersDir": "libs/database/src/subscribers"
}
}
Как вы можете видеть, объекты находятся в библиотеке базы данных.
Эта конфигурация отлично работает для миграции, но когда я пытаюсь вызвать getConnection()
(из любого места, например, из приложения узла в той же рабочей области) Я получаю сообщение об ошибке ConnectionNotFoundError: Connection "default" was not found.
Комментарии:
1. Я также пытаюсь заставить его работать с минимальным примером репозитория. Я изо всех сил пытаюсь запустить миграцию при запуске. Не мог бы кто-нибудь, пожалуйста, взглянуть на эту проблему? (Ссылка на образец репозитория предоставлена) github.com/typeorm/typeorm/issues/8219
Ответ №1:
Я также использую моно-репозитории для своих проектов. По моему опыту, после поиска той же проблемы, что и несколько месяцев назад, я обнаружил, что вы должны поместить ormconfig.json
файл в верхний каталог вашего проекта. Например, если ваш каталог выглядит следующим образом:
project/
packages/
backend/
common/
frontend/
-
И ваш
ormconfig.json
файл находится вproject/packages/backend/
каталоге, тогда вы должны переместить его в верхний или родительский каталог, который естьproject/
. -
Убедитесь также, что ваши объекты или миграции показывают правильное расположение вашей папки entities в пути / дереве каталога. Как я вижу, вы сначала создаете и компилируете свой код, а затем запускаете его
node
. Итак, если это сценарий, и вы не используете такие инструменты, какts-node
, то вы правильно разместили каталог Entities или Migrations, чтобы указать на папкуlib
/dist
/build
. -
Я также счел полезным использовать эту служебную функцию от Ben Awad для подключения TypeORM к моей базе данных. Надеюсь, это вам тоже поможет!
Комментарии:
1. Здравствуйте, спасибо за ваше предложение. Я не знаю, почему, но когда я использую
getConnection
его, он не может поместить мой файлormconfig.json
в ту же папкуpackage.json
. Вместо этого, если я используюcreateConnection()
его, он работает.2. Да, интересно, почему это не так. Вы можете сообщить об этом как о проблеме в своем репозитории GitHub. Кроме того, если вы нашли мой ответ полезным, пожалуйста, оставьте свой голос или примите его, я был бы очень признателен.