mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 07:08:01 +00:00
Add Check If Database And Schema Are Not In Sync as a Prisma TIL
This commit is contained in:
37
prisma/check-if-database-and-schema-are-not-in-sync.md
Normal file
37
prisma/check-if-database-and-schema-are-not-in-sync.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Check If Database And Schema Are Not In Sync
|
||||
|
||||
The [`prisma migrate
|
||||
diff`](https://www.prisma.io/docs/orm/reference/prisma-cli-reference#migrate-diff)
|
||||
command is a versatile tool that can be used to check if there is a difference
|
||||
between two sources. In this case, we want to check if our database is in sync
|
||||
with the `schema.prisma` file for our project.
|
||||
|
||||
If we have made changes to the schema file, but haven't yet migrated or pushed
|
||||
those changes to our local database, then we want to be notified of that
|
||||
mismatch.
|
||||
|
||||
We'll point at the schema file with `--to-schema-datamodel` and at our local
|
||||
database with `--from-url`.
|
||||
|
||||
```bash
|
||||
❯ npx prisma migrate diff \
|
||||
--to-schema-datamodel ./prisma/schema.prisma \
|
||||
--from-url mysql://root@localhost:3309/kcd-products
|
||||
|
||||
[*] Changed the `User` table
|
||||
[+] Added column `metadata`
|
||||
```
|
||||
|
||||
In the case where there is a different, we see an output summary of the diff.
|
||||
|
||||
Let's say we've applied our changes (`prisma db push`) to our local database.
|
||||
If we now run that same command again, we can see that no difference is
|
||||
detected and our database is in sync with our schema.
|
||||
|
||||
```bash
|
||||
❯ npx prisma migrate diff \
|
||||
--to-schema-datamodel ./prisma/schema.prisma \
|
||||
--from-url mysql://root@localhost:3309/kcd-products
|
||||
|
||||
No difference detected.
|
||||
```
|
||||
Reference in New Issue
Block a user