ย้ายข้อมูล SQLite ไปสู่  PostgreSQL สำหรับ DJANGO โดย ทำเว็บไปกับคุณพ่อ
หมวดหมู่ การฝึกพัฒนาซอฟต์แวร์ | เขียนโดยคุณ ทำเว็บไปกับคุณพ่อ

ย้ายข้อมูล SQLite ไปสู่ PostgreSQL สำหรับ DJANGO

โพสต์เมื่อ 1 ปี, 10 เดือน ago | มีผู้อ่านทั้งหมด 707 คน

บทความอื่นๆ ของ ทำเว็บไปกับคุณพ่อ


บทความนี้เป็นบทความพิเศษจ้า.. สำหรับใครที่ลองเล่นตัว Django มาสักพักและรู้สึกว่าการใช้งานแบบฐานข้อมูล SQLite นั้นมันมีข้อจำกัดเรื่องของทำงานหลาย ๆ โปรเจคบนอยู่บน Cloud ซ้อนกันเยอะ การใช้งาน SQLite ก็อาจจะไม่ตอบโจทย์ในการใช้งานเท่าไหร่นัก แต่หากเป็นการพัฒนาแอปพลิเคชั่นแบบ Real World (ในที่นี้ผมหมายถึงพวกอุปกรณ์ IOT ทั้งหลายนะ)  ฐานข้อมูลแบบ  SQLite ก็ยังเป็นที่นิยมอย่างมาก

จริงๆ แล้วฐานข้อมูลแบบ   SQLite และ PostgreSQL เป็นฐานข้อมูลที่ได้รับความนิยมค่อนข้างสูงมากในปัจจุบันครับที่สามารถใช้งานได้ฟรีและมีการพัฒนามาอย่างต่อเนื่องเสมอ เป็นเวลาหลายปีที่ผ่านมา ในปัจจุบันทั้งสองตัวยังอยู่ใน 10 อันดับฐานข้อมูลที่ได้รับความนิยมมากที่สุดอีกด้วย



มันดีทั้งสองตัวเลยนิ แล้วเราจะย้ายไป PostgreSQL ทำไมละ?

     SQLite เป็นฐานข้อมูลที่เหมาะกับข้อมูลจำนวนน้อยๆ เมื่อนำมาใช้กับงานเว็บไซต์หรือแอปพลิเคชั่นมือถือ เราจะเจอปัญหาเรื่องของการอ่านเขียนข้ออยู่อยู่ตลอดเวลา ซึ่งหากเป็นระบบที่ค่อนข้างใหญ่และมีการอ่านเขียนข้อมูลเยอะๆ ก็จะทำให้เว็บไซต์ของเราช้าขึ้นมาได้ เหมาะกับอุปกรณ์พกพา หรือแอปพลิเคชั่น ที่ไว้จำหรับจดบันทึก ระบบ IOT หรือแอปพลิเคชั่นที่อยู่ในช่วงการพัฒนามากกว่า


ควรจะย้ายไป PostgreSQL เมื่อไหร่?

     เมื่อเราต้องการความสมบูรณ์ของการเรียกใช้งานข้อมูลและสิทธิ์ในการเข้าถึงข้อมูลมากขึ้น ฐานข้อมูลมีขนาดใหญ่ขึ้น หรือเมื่อต้องการขยาย Scale งานออกไปเป็นหลายๆ ส่วนโดยใช้ข้อมูลจากฐานข้อมูลเดียว เป็นต้นครับ ทั้งนี้สามารถเลือกใช้งานได้ตามความเหมาะสมเลย..


โดยคำสั่งในการย้ายเราจะต้องทำข้อมูลให้ออกมาอยู่ในรูปของ json ก่อน โดยใช้คำสั่ง

python manage.py dumpdata > yourdatabase.json


จากนั้นให้ทำการเปลี่ยนข้อมูล Database ในไฟล์ Setting.py ให้เป็น PostgreSQL

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'yordatabase', ##ใส่ชื่อฐานข้อมูลของคุณ
        'USER': 'needhobby',
        'PASSWORD': '**************',
        'HOST': '192.168.1.1', ##ใส่ที่อยู่ของฐานข้อมูล
        'PORT': '5432',
    }
}

จากนั้นทำการตรวจสอบว่าข้อมูลของเรานั้นเชื่อมต่อกันแล้วโดยใช้คำสั่ง
python manage.py migrate --run-syncdb


และสุดท้ายให้พิมพ์คำสั่ง manage.py loaddata yourdatabase.json

python manage.py loaddata yourdatabase.json


เพียงเท่านี้ข้อมูลของคุณที่แต่เดิมบันทึกอยู่ในรูปแบบของ SQLite ก็จะเป็น PostgreSQL แล้วครับ

คิดเห็นยังไงกับบทความของ ทำเว็บไปกับคุณพ่อ



บทความมาใหม่ที่อยากให้ลองอ่าน