แผนการเรียนรู้
/

Django Migration Guide

คู่มือการย้ายโปรเจกต์ 'mysite' จาก PythonAnywhere สู่ Render.com ผ่าน GitHub

สร้างซอฟต์แวร์ที่ยั่งยืนด้วย Modern Cloud Infrastructure

เส้นทางการย้ายระบบ (Migration Roadmap)

1. เตรียมข้อมูล บีบอัดและดาวน์โหลดจาก PythonAnywhere

2. Source Control จัดการโค้ดผ่าน GitHub Repository

3. Infrastructure

4. Production Config

5. Deployment

ขั้นตอนที่ 1: บีบอัดโปรเจกต์

เริ่มต้นที่ PythonAnywhere Dashboard เพื่อรวบรวมไฟล์

# เปิด Bash Console และพิมพ์คำสั่งดังนี้:

cd ~

zip -r mysite.zip mysite

"คำสั่งนี้จะสร้างไฟล์ mysite.zip ที่บรรจุทุกไฟล์ในโฟลเดอร์ mysite ของคุณ"

การดาวน์โหลดไฟล์ลงเครื่อง

ดาวน์โหลดจากหน้า Files:

  • ไปที่เมนู Files ใน PythonAnywhere
  • ค้นหาไฟล์ mysite.zip ใน Home directory
  • คลิกที่ชื่อไฟล์เพื่อดาวน์โหลด
  • นำไปเก็บไว้ที่ Drive D:/
💾

ขั้นตอนที่ 2: สร้าง GitHub Repository

วางรากฐานการจัดการเวอร์ชัน (Version Control)

  • 🎯 Repository Name mysite
  • 🎯 Description
  • 🎯 .gitignorePython เพื่อป้องกันไฟล์ขยะ
  • 🎯 Visibility

การ Clone มาที่เครื่องคอมพิวเตอร์

เปิด Terminal/Command Prompt และรัน:

d:
mkdir Github
cd Github
git clone https://github.com/YOUR_USER/mysite.git

การเตรียมไฟล์โปรเจกต์

1. Extract:

นำไฟล์ใน mysite.zip ทั้งหมดออกมาวางที่ D:/Github/mysite

2. Structure:

ตรวจสอบว่าไฟล์ manage.py อยู่ที่ root ของ Repository

"ตอนนี้เครื่อง Local และ GitHub ของคุณพร้อมสำหรับการตั้งค่าคลาวด์แล้ว"

ขั้นตอนที่ 3: ตั้งค่า Render.com

แพลตฟอร์ม Cloud ยุคใหม่ที่รองรับ Django ได้ดีเยี่ยม

1

สมัครบัญชีที่ Render.com

2

เชื่อมต่อบัญชีกับ GitHub ของคุณ

การสร้างฐานข้อมูล PostgreSQL

เปลี่ยนจาก SQLite สู่ฐานข้อมูลมาตรฐานธุรกิจ

  • 🔹 คลิกปุ่ม New -> PostgreSQL
  • 🔹 ตั้งชื่อฐานข้อมูล (เช่น mysitedb)
  • 🔹 สำคัญ:*คัดลอก Internal Database URL เก็บไว้เพื่อใช้เชื่อมต่อ

ขั้นตอนที่ 4: ปรับแต่ง Django (Settings)

ติดตั้งแพ็กเกจที่จำเป็นสำหรับ Production

# เพิ่มสิ่งนี้ใน requirements.txt:

psycopg2-binary # Adapter สำหรับ PostgreSQL
dj-database-url # จัดการ DB URL ผ่าน Env
whitenoise # เสิร์ฟไฟล์ Static

การเชื่อมต่อฐานข้อมูลอัจฉริยะ

import dj_database_url
import os

DATABASES = {
  'default': dj_database_url.config(
    default='sqlite:///db.sqlite3',
    conn_max_age=600
  )
}

"โค้ดนี้จะใช้ PostgreSQL อัตโนมัติเมื่ออยู่บนคลาวด์ และใช้ SQLite เมื่อพัฒนาบนเครื่อง"

การจัดการไฟล์ Static

1. ใน MIDDLEWARE (ต่อจาก SecurityMiddleware):

'whitenoise.middleware.WhiteNoiseMiddleware',

2. ตั้งค่า Storage:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

ความปลอดภัย (NFR-3)

DEBUG = False

ป้องกันไม่ให้โชว์ Error ละเอียดแก่บุคคลภายนอก

ALLOWED_HOSTS

ใส่โดเมนของ Render (เช่น ['*'] หรือระบุ URL จริง)

"ห้ามลืมเปลี่ยน SECRET_KEY ให้ดึงจาก Environment Variable ด้วย!"

การทำ Automation ด้วย Build Script

สร้างไฟล์ build.sh ไว้ที่ Root Directory

set -o errexit
pip install -r requirements.txt
python manage.py collectstatic --no-input
python manage.py migrate

"รันคำสั่ง chmod a+x build.sh เพื่ออนุญาตให้ระบบรันไฟล์นี้ได้"

ขั้นตอนที่ 5: เริ่มการ Deployment

  • 🚀 คลิก New -> Web Service
  • 🚀 เลือก Repository mysite
  • 🚀 Language Python
  • 🚀 Build Command ./build.sh
  • 🚀 Start Commandgunicorn core.wsgi:application

การตั้งค่าตัวแปรสภาพแวดล้อม

ไปที่เมนู Environment ใน Web Service และระบุค่าดังนี้ :

DATABASE_URL

นำ URL จาก PostgreSQL มาวาง

SECRET_KEY

ระบุรหัสลับสำหรับแอปพลิเคชัน

PYTHON_VERSION

ระบุเวอร์ชัน เช่น 3.12.3

ส่งมอบโค้ด (Push to Git)

git add .
git commit -m "Configure for Render deployment"
git push origin main

"ทันทีที่คุณ Push, Render จะเริ่มขั้นตอนการ Build ให้อัตโนมัติ!"

การตรวจสอบสถานะ (Go Live!)

  • 🎥 ติดตาม Logs การ Build ในหน้า Dashboard ของ Render
  • 🎥 หากขึ้นสถานะ Live แสดงว่าการออนไลน์สำเร็จ!
  • 🎥 ตรวจสอบ URL .onrender.com เพื่อดูหน้าเว็บจริง
🚀

ขอแสดงความยินดี!

โปรเจกต์ Django 'mysite' ของคุณ
เปิดให้บริการทั่วโลกแล้วบนคลาวด์คุณภาพ!

🌍✨

สรุปสิ่งที่ได้รับ

จัดการ Git สากล
ฐานข้อมูลระดับธุรกิจ
รองรับ CI/CD อัตโนมัติ
ศึกษาเพิ่มเติมได้ที่: render.com/docs/deploy-django
👋🛸