كيفية استخدام PostgreSQL مع تطبيق Django على خادم يعمل بأوبنتو 16.04
تعد قاعدة البيانات PostgreSQL واحدة من أكثر الأنظمة شيوعًا وقوة في التعامل مع البيانات في التطبيقات الكبيرة، خصوصًا عند استخدامه مع إطار العمل Django. يدمج Django بشكل مدمج مع العديد من قواعد البيانات، ويعد PostgreSQL خيارًا مفضلًا للكثير من المطورين بسبب قدراته العالية في التعامل مع البيانات المعقدة وسرعته في الأداء. في هذا المقال، سنشرح بالتفصيل كيفية إعداد PostgreSQL على خادم يعمل بنظام أوبنتو 16.04 وربطه مع تطبيق Django بطريقة متكاملة.
1. إعداد بيئة العمل على أوبنتو 16.04
1.1 تحديث النظام
قبل أن تبدأ في تثبيت PostgreSQL أو أي أداة أخرى، من المهم أن تقوم بتحديث النظام لتفادي المشاكل المحتملة بسبب إصدارات قديمة. يمكنك تنفيذ التحديثات عبر الأوامر التالية:
bashsudo apt update sudo apt upgrade
1.2 تثبيت PostgreSQL
PostgreSQL هو قاعدة بيانات مفتوحة المصدر يمكن تثبيتها بسهولة على أنظمة أوبنتو. لتثبيته، قم بتشغيل الأمر التالي:
bashsudo apt install postgresql postgresql-contrib
هذا الأمر سيقوم بتثبيت PostgreSQL بالإضافة إلى بعض الأدوات المساعدة مثل postgresql-contrib.
1.3 التحقق من تثبيت PostgreSQL
بعد اكتمال عملية التثبيت، يمكنك التحقق من أن PostgreSQL يعمل بشكل صحيح عبر الأمر:
bashsudo systemctl status postgresql
إذا كان PostgreSQL يعمل، ستشاهد الحالة active (exited).
2. إعداد PostgreSQL ليتوافق مع Django
2.1 إنشاء قاعدة بيانات ومستخدم PostgreSQL
من أجل ربط Django مع PostgreSQL، نحتاج إلى إنشاء قاعدة بيانات ومستخدم خاص للمشروع. أولاً، قم بالدخول إلى واجهة psql باستخدام المستخدم postgres:
bashsudo -u postgres psql
ثم، لإنشاء قاعدة بيانات جديدة، يمكنك استخدام الأمر:
sqlCREATE DATABASE myprojectdb;
لتعديل الصلاحيات، قم بإنشاء مستخدم جديد وإعطائه الصلاحيات المطلوبة على القاعدة:
sqlCREATE USER myprojectuser WITH PASSWORD 'password';
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE myprojectdb TO myprojectuser;
يجب استبدال myprojectuser و password بالقيم المناسبة لمشروعك.
2.2 تعديل إعدادات PostgreSQL للسماح بالاتصال عن بُعد (اختياري)
إذا كنت ترغب في السماح للتطبيقات بالاتصال بـ PostgreSQL عن بُعد، تحتاج إلى تعديل ملف الإعدادات pg_hba.conf. يمكنك فتحه باستخدام محرر النصوص:
bashsudo nano /etc/postgresql/9.5/main/pg_hba.conf
ابحث عن الأسطر التي تبدأ بـ host، وقم بتعديلها للسماح بالاتصال عن بُعد. على سبيل المثال، يمكنك السماح لجميع العناوين بالاتصال على النحو التالي:
plaintexthost all all 0.0.0.0/0 md5
بعد ذلك، تأكد من أن PostgreSQL يسمح بالاتصال من جميع الشبكات عبر تعديل الملف postgresql.conf:
bashsudo nano /etc/postgresql/9.5/main/postgresql.conf
ابحث عن السطر الذي يحتوي على listen_addresses وقم بتعديله إلى:
plaintextlisten_addresses = '*'
3. إعداد Django لاستخدام PostgreSQL
3.1 تثبيت مكتبة psycopg2
Django لا يدعم PostgreSQL بشكل مباشر دون وجود مكتبة psycopg2 التي تسمح له بالتفاعل مع قواعد بيانات PostgreSQL. لتثبيت هذه المكتبة، يمكنك استخدام pip:
bashpip install psycopg2
أو لإصدارات أخرى من psycopg2 يمكن استخدام:
bashpip install psycopg2-binary
3.2 تعديل إعدادات قاعدة البيانات في Django
بمجرد تثبيت psycopg2، يمكنك تعديل إعدادات الاتصال بقاعدة البيانات في ملف settings.py الخاص بمشروع Django. يجب أن تجد القسم الخاص بإعدادات قاعدة البيانات وتعديله كما يلي:
pythonDATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'myprojectdb',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '5432',
}
}
تأكد من استبدال myprojectdb و myprojectuser و password بالقيم التي أنشأتها في PostgreSQL.
3.3 تنفيذ المهاجرات (Migrations)
بعد إعداد الاتصال بقاعدة البيانات، يجب أن تقوم بتطبيق المهاجرات (migrations) لإنشاء الجداول الخاصة بمشروع Django في قاعدة البيانات PostgreSQL:
bashpython manage.py migrate
4. اختبار الاتصال بين Django و PostgreSQL
بعد إجراء كل التعديلات، حان الوقت لاختبار التطبيق. يمكنك الآن تشغيل الخادم المحلي للتأكد من أن Django يستطيع الاتصال بـ PostgreSQL:
bashpython manage.py runserver
افتح المتصفح وانتقل إلى العنوان http://127.0.0.1:8000/ للتحقق من أن التطبيق يعمل بدون مشاكل.
5. إعداد PostgreSQL لتشغيله بشكل آمن
من المهم تأمين قاعدة البيانات لتقليل المخاطر الأمنية. يمكن فعل ذلك بعدة طرق:
5.1 تغيير كلمة مرور المستخدم postgres
من الجيد تغيير كلمة مرور المستخدم postgres الافتراضية، خاصة إذا كان الخادم سيعمل في بيئة إنتاجية. لتغيير كلمة المرور، قم بتنفيذ الأمر التالي في واجهة psql:
sql\password postgres
ثم قم بتحديد كلمة مرور جديدة.
5.2 تمكين المصادقة عبر شهادة SSL
إذا كنت ترغب في تمكين الاتصال الآمن مع قاعدة البيانات عبر SSL، يجب إعداد PostgreSQL لذلك. هذا يتطلب إعداد شهادات SSL على الخادم وتحديث إعدادات PostgreSQL في الملف postgresql.conf:
plaintextssl = on ssl_cert_file = '/path/to/server.crt' ssl_key_file = '/path/to/server.key'
6. نشر التطبيق على الخادم
بعد أن قمت بإعداد كل شيء على الخادم المحلي، يمكنك الآن نشر تطبيق Django الخاص بك على الخادم باستخدام أدوات مثل gunicorn و nginx لتوفير بيئة إنتاج مستقرة وموثوقة.
6.1 تثبيت Gunicorn
Gunicorn هو خادم WSGI Python الذي يعمل بشكل جيد مع Django. لتثبيته، استخدم الأمر التالي:
bashpip install gunicorn
6.2 إعداد Nginx
Nginx يمكن أن يعمل كخادم عكسي (reverse proxy) لتحسين الأداء وتأمين التطبيق. قم بتثبيته عبر:
bashsudo apt install nginx
ثم، قم بإعداد تكوين Nginx ليوجه الطلبات إلى Gunicorn.
7. ختام
في هذا المقال، قمنا بشرح كيفية إعداد PostgreSQL للعمل مع تطبيق Django على خادم يعمل بنظام أوبنتو 16.04. لقد شملنا خطوات تثبيت PostgreSQL، إعداد قاعدة البيانات، ثم ربط Django بها. علاوة على ذلك، قمنا بتوضيح كيفية نشر التطبيق على خادم وتوفير بيئة آمنة ومستقرة لتشغيله في بيئة إنتاجية.

