😍Migrate MongoDB to MySQL using Prism Key Differences (ok)
https://dev.to/raynecoder/migrate-mongodb-to-mysql-using-prism-key-differences-2ma5
Example 1 chuyển từ postgresql sang mysql
Sử dụng bài https://learnreact.gitbook.io/learnreact/postgresql/nextjs-prisma-postgres-demo-ok
Ban đầu có sử dụng cơ sở dữ liệu là postgresql

prisma\schema.prisma
.env


Example 2

.env
prisma\schema.prisma (mongo)
prisma\schema.prisma (mysql)
Migrate MongoDB to MySQL using Prism Key Differences
The schema.prisma file defines the data models, relationships, and database connection details for Prisma. When using different databases like MongoDB and MySQL, the schema.prisma file will have differences due to the unique characteristics and data types of each database.
Key Differences Between schema.prisma for MongoDB and MySQL
schema.prisma for MongoDB and MySQL1. Datasource Configuration
The datasource block specifies the database provider (mongodb or mysql) and connection details. The provider will change depending on the database you are using.
MongoDB Configuration:
MySQL Configuration:
2. Data Model Differences
MongoDB and MySQL have different data types and ways of defining primary keys and relationships. Here are the primary differences:
Primary Key Definition:
In MongoDB, the primary key is usually an
ObjectIdand is mapped using the@map("_id")directive.In MySQL, the primary key is typically an integer with auto-increment.
Data Type Differences:
MongoDB supports data types like
String,Int,Float,Boolean,DateTime, and custom types likeJsonandObjectId.MySQL has a more structured type system, including
Int,Float,Double,Boolean,DateTime,Decimal, andString.
Example of schema.prisma for MongoDB:
Example of schema.prisma for MySQL:
Summary of Differences
Feature
MongoDB (schema.prisma)
MySQL (schema.prisma)
Datasource Provider
provider = "mongodb"
provider = "mysql"
Primary Key Definition
id String @id @default(auto()) @map("_id") @db.ObjectId
id Int @id @default(autoincrement())
Data Types
Supports String, Int, Float, Boolean, DateTime, etc.
More structured, includes Int, Float, Double, etc.
Foreign Key Relationship
Foreign keys defined with @db.ObjectId
Foreign keys with Int or other standard SQL types
Autoincrement ID
Not applicable (@default(auto()))
@default(autoincrement())
Unique Identifier
@unique for unique fields
@unique for unique fields
Conclusion
The main differences in the schema.prisma file between MongoDB and MySQL revolve around how primary keys are handled, the differences in data types, and the way relationships and fields are mapped to the database. When switching from MongoDB to MySQL, these differences must be adjusted to accommodate the underlying database system's constraints and data modeling.
Last updated