Ошибка миграции prisma2: в базе данных больше миграций, чем локально - PullRequest
2 голосов
/ 15 марта 2020

Я создаю бэкэнд-приложение, используя prisma2 + typcript + nexus + graphql-yoga. Теперь я определил свою схему при попытке сохранить миграцию, выполнив команду prisma2 migrate save --name "init" --experimental

Получив следующую ошибку.

Ошибка : В базе данных больше миграций, чем локально. Этого не должно быть. Идентификаторы локальной миграции:. Идентификаторы удаленной миграции: 20200312230215-init, 20200312232858-init2

1 Ответ

3 голосов
/ 16 марта 2020

Это связано с несовпадением миграций, выполненных для базы данных, и миграций в папке prisma/migrations.

Это происходит при следующих обстоятельствах:

  1. Создайте миграцию с помощью prisma2 migrate save --name “init” --experimental
  2. Выполните миграцию с помощью prisma2 migrate up --experimental
  3. Удалите файлы миграции в папке prisma/migrations
  4. Попробуйте запустить prisma2 migrate save --name “new-migration” --experimental

На шаге 4 вы увидите эту ошибку.

Prisma отслеживает выполненные миграции в базе данных в таблице с именем _Migration.

Для решения проблемы попробуйте удалить таблицу _Migration в базе данных. С SQLite вы можете сделать это следующим образом:

sqlite3 prisma/dev.db "delete from _Migration"

Если это не сработает, вам нужно пересоздать базу данных. Если вы используете sqlite, удалите файл prisma/dev.db (вы потеряете все данные в базе данных).

Чтобы предотвратить это в будущем, убедитесь, что вы начинаете с чистой базы данных и, если вы используете повторно в той же базе данных избегайте удаления файлов миграции (в prisma/migrations после их выполнения.

...