Header Ads

Header ADS

Prisma : Change Database


✅when i switch mySQL to postgreSQL then i have to run : 

1.Remove-Item -Recurse -Force prisma\migrations 

2.npx prisma migrate dev --name init-postgre

 3. npx prisma generate 

 when i switch postgreSQL to mongoDB then i have to run : 

1.Remove-Item -Recurse -Force prisma\migrations 

2. npx prisma db push 

3. npx prisma generate 


 it is very confusing : why option 2 is different for these database ?


✅ কেন Option 2 আলাদা?

🔶 MySQL / PostgreSQL:

👉 SQL-based relational database

Prisma এই ডেটাবেসগুলোর জন্য Migration System ব্যবহার করে। কারণ:

  1. ডেটাবেসে টেবিল, কলাম, constraint ইত্যাদি strict schema অনুযায়ী থাকে।

  2. Prisma .sql ফাইল তৈরি করে এবং সেগুলো মাইগ্রেট করে ডেটাবেসে।

✅ এজন্য তোমাকে চালাতে হয়:

npx prisma migrate dev --name something

➡️ এটা prisma/migrations/ ফোল্ডারে মাইগ্রেশন তৈরি করে এবং ডেটাবেসে apply করে।


🟣 MongoDB:

👉 NoSQL, Schema-less Database

MongoDB-তে ডেটা ফরম্যাট flexible হয়, এবং strict schema enforce করা হয় না। তাই Prisma এখানে কোনো migration.sql তৈরি করতে পারে না।

✅ এজন্য এখানে চালাতে হয়:

npx prisma db push

➡️ এটা শুধু Prisma-এর schema অনুযায়ী MongoDB-এর collection structure sync করে দেয় — কিন্তু কোনো migration history বা ফাইল রাখে না।


🔍 সংক্ষেপে পার্থক্য:

Database Type Command কারণ
MySQL / PostgreSQL npx prisma migrate dev Schema migrate + Migration file তৈরি করে
MongoDB npx prisma db push কোনো migration file ছাড়াই সরাসরি schema sync করে দেয়

✅ তোমার Workflow-টা যদি এমন হয়:

1. Remove-Item -Recurse -Force prisma\migrations
2. npx prisma migrate dev --name init-postgre
3. npx prisma generate

🔁 তখন তুমি SQL DB ব্যবহার করছো।

আর যখন:

1. Remove-Item -Recurse -Force prisma\migrations
2. npx prisma db push
3. npx prisma generate

🔁 তখন তুমি MongoDB ব্যবহার করছো।


✅ আমি সাজিয়ে দিচ্ছি একদম সহজভাবে মনে রাখার জন্য:

🔷 MySQL / PostgreSQL:

prisma migrate dev   → কারণ: strict schema

🟣 MongoDB:

prisma db push       → কারণ: schema-less, no migration


Powered by Blogger.