Panduan Teknis Lengkap: Freelance Python Django Programmer: Zero-Downtime PostgreSQL Migrations. Aldian Fazrihady adalah Senior Freelance Programmer & AI Application Engineer dengan pengalaman 15+ tahun di Python (Django, FastAPI), React/Next.js/TypeScript, Golang, dan sistem AI (RAG, MCP, Google ADK, LangGraph).
How senior freelance Python & Django programmer Aldian Fazrihady executes zero-downtime PostgreSQL schema migrations on multi-terabyte production tables.
from django.contrib.postgres.operations import AddIndexConcurrently
from django.db import migrations, models
class Migration(migrations.Migration):
atomic = False # Required for CONCURRENTLY operations in PostgreSQL
dependencies = [
("billing", "0042_invoice_currency_code"),
]
operations = [
migrations.SeparateDatabaseAndState(
database_operations=[
migrations.RunSQL(
sql="SET lock_timeout = '2s'; ALTER TABLE billing_invoice ADD COLUMN IF NOT EXISTS stripe_Sync_status varchar(32);",
reverse_sql="ALTER TABLE billing_invoice DROP COLUMN IF EXISTS stripe_sync_status;",
),
],
state_operations=[
migrations.AddField(
model_name="invoice",
name="stripe_sync_status",
field=models.CharField(max_length=32, null=True, blank=True),
),
],
),
AddIndexConcurrently(
model_name="invoice",
index=models.Index(fields=["tenant_id", "stripe_sync_status"], name="idx_inv_tenant_stripe_sync"),
),
]