PrismaPostgresAdvanced
বড় schema-পরিবর্তন — data migration
rename/transform — পার্শ্বে-থেকে existing data ঠিক রাখা।
4টি অংশবাংলা ভাষায়
২-phase pattern — code-নতুন column-এ যাক, তারপর পুরোনো মুছে দাও।
- নতুন column add (nullable/default)
- মিডল-টাইম — app-দুটোই লেখে
- backfill — copy/transform data
- পুরোনো column নিষিদ্ধ → drop
backfill (prisma)ts
ts
const products = await prisma.product.findMany({
where: { slug: null },
select: { id: true, name: true },
});
for (const p of products) {
const slug = p.name.toLowerCase().split(" ").join("-");
await prisma.product.update({
where: { id: p.id },
data: { slug },
});
}destructive-সতর্ক
Production-এ সরাসরি column rename নয় — ২-phase deploy + test। বড় টেবিলে ALTER lock নেয় — সতর্কভাবে গণ-সময় ঠিক করুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।