Prisma 在修改后的数据库上迁移
Prisma migrate on an altered DB
给定一个由数据科学家和开发人员组成的团队。
开发人员想使用 schema.prisma
但数据科学家不想使用并且想直接自由编辑数据库...
如果数据科学家直接更改数据库会怎样? prisma migrate dev/deploy
会继续正常工作吗?
如果数据科学家直接更改数据库,那么 prisma 模式和数据库模式之间就会发生漂移。
因此下次有人调用 prisma migrate dev
命令时,prisma 会提示您重置数据库。
来自文档:
The migrate dev command will prompt you to reset the database in the
following scenarios:
- Migration history conflicts caused by modified or missing migrations
- The database schema has drifted away from the end-state of the migration history
建议只坚持一种方法,要么只通过迁移更新数据库,要么直接更新数据库,将两者结合起来会导致不良状态。
除了@Nurul 的回答,这是我所做的:
$ # In `.env`: points `DATABASE_URL` to the data-scientists' DB
$ npx prisma db pull # Pull changes from it and update `schema.prisma`
$ # In `.env`: points `DATABASE_URL` back to localhost
$ npx prisma migrate dev # Generate the migration and apply changes tolocal DB
Name of your migration: my_sneaky_new_migration
$ git add prisma/schema.prisma prisma/migrations/20220603XXXXX_my_sneaky_new_migration
$ git commit
$ # In `.env`: points `DATABASE_URL` to the data-scientists' DB
$ npx prisma resolve --applied "my_sneaky_new_migration" # Mark the migration as already applied
$ # In `.env`: points `DATABASE_URL` back to localhost
给定一个由数据科学家和开发人员组成的团队。
开发人员想使用 schema.prisma
但数据科学家不想使用并且想直接自由编辑数据库...
如果数据科学家直接更改数据库会怎样? prisma migrate dev/deploy
会继续正常工作吗?
如果数据科学家直接更改数据库,那么 prisma 模式和数据库模式之间就会发生漂移。
因此下次有人调用 prisma migrate dev
命令时,prisma 会提示您重置数据库。
来自文档:
The migrate dev command will prompt you to reset the database in the following scenarios:
- Migration history conflicts caused by modified or missing migrations
- The database schema has drifted away from the end-state of the migration history
建议只坚持一种方法,要么只通过迁移更新数据库,要么直接更新数据库,将两者结合起来会导致不良状态。
除了@Nurul 的回答,这是我所做的:
$ # In `.env`: points `DATABASE_URL` to the data-scientists' DB
$ npx prisma db pull # Pull changes from it and update `schema.prisma`
$ # In `.env`: points `DATABASE_URL` back to localhost
$ npx prisma migrate dev # Generate the migration and apply changes tolocal DB
Name of your migration: my_sneaky_new_migration
$ git add prisma/schema.prisma prisma/migrations/20220603XXXXX_my_sneaky_new_migration
$ git commit
$ # In `.env`: points `DATABASE_URL` to the data-scientists' DB
$ npx prisma resolve --applied "my_sneaky_new_migration" # Mark the migration as already applied
$ # In `.env`: points `DATABASE_URL` back to localhost