Как сгенерировать файл миграции в typeorm с помощью nest js

Я новичок в этой структуре Nest JS и создал образец Restful API, но не смог перенести файл объекта. Я пробовал много способов, как это не работает. при первом запуске команды миграции для создания файла миграции она работает нормально. но во второй раз, создавая новую сущность, запустите команду миграции, которая показывает сообщение об отсутствии изменений, как исправить эту проблему.

Файл конфигурации БД .ts

      {
            type: 'postgres',
            host: process.env.POSTGRES_HOST,
            port: parseInt(process.env.POSTGRES_PORT) || 5432,
            database: process.env.POSTGRES_DATABASE,
            username: process.env.POSTGRES_USER,
            password: process.env.POSTGRES_PASSWORD,
            entities: ["dist/**/*.entity{ .ts,.js}"],
            synchronize: true,
            "migrations": ["dist/migrations/*{.ts,.js}"],
            "migrationsTableName": "migrations_typeorm",
            // ssl:{
            //     rejectUnauthorized:false
            // }
          }

Команда миграции

Создать и сгенерировать команду миграции

      npx typeorm migration:create -n User -d src/migrations

npx typeorm migration:generate -n User -d src/migrations

Запустить файл миграции

      npx typeorm migration:run

1 ответ

Вы должны использовать только в вашем случае. Это проверит вашу текущую структуру базы данных и сравнит ее с файлом объекта и на основе этого сгенерирует новый файл миграции с изменениями.

Проблема, с которой вы столкнулись, вероятно, была связана с переопределением.

создаст новый пустой файл, и вы запустите migration:generate

он не перезапишет этот файл.

Если вы хотите написать свою собственную миграцию, вы можете использовать migration:create

как простой и легкий способ назвать его и автоматически структурировать.

Редактировать:

Также не забудьте установить synchronize

значение false, поскольку он автоматически перенесет ваши данные на основе сущностей и изменений в противном случае.

Я всегда отключаю эту функцию и создаю или пишу миграцию вручную, так как она дает наибольший контроль.

Другие вопросы по тегам