ما الفائدة من استخدام sqlite في حين أنها لا تدعم أي سيرفر

  • mo7@mmed

السلام عليكم ورحمة الله وبركاته

كنت أعمل على مشروع ريلز بأستخدام قاعدة البيانات SQLite

لكن عند نشر المشروع على السيرفرات مثل heroku أو openshift أو غيرها من السيرفرات تفاجأت بأن كل تلك السيرفرات لا تدعم sqlite وتدعم postgresql بدلاً عنها

وبما sqlite لا تعمل قمت بالتغيير إلى postgresql لكن عند تغيير إلى postgresql تحصل العديد من الأخطاء في الإستعلامات داخل المشروع

الإستعلامات التي كانت تعمل على sqlite لم تعد تعمل على postgresql قمت بالتغيير على الإستعلامات بحسب ما يتوافق مع postgresql لكن المشكلة أنني استعمل العديد من الـ gems في المشروع

وكما يعلم الكل هناك دوال و API تأتي مع كل gem فتحصل اخطاء ايضاً على postgresql

وأنا لا استطيع التعديل على استعلامات هذا الـ gem

فما هو الحل ؟

أو إن كان هناك سيرفرات تدعم sqlite3 اعلموني بها

وجزاكم الله خيراً


التعليق السابق

لا أعلم ما تقصد، لكن من المفترض ألا تحدث هذه الأخطاء. معظم ال Gems ستعمل على أغلب محركات قواعد البيانات.

كلامك صحيح، لكن بالفعل هذا ماحصل هي ليست أخطاء كبيرة واستطيع تعديلها

@Mohammed M. Rahmoun @Eol

مثلاً عند الإستعلام الذي يحتوي إنضمام مع عدة جداول عند عمل group

group('post_it)

تتعرف sqlite على post_id مباشرة دون كتابة مثلا:

group('posts.post_id)

أنا كنت اكتب بعضها بهذه الطريقة مع sqlite وكانت تعمل بدون مشاكل ، لكن عند التبديل لـ postgresql لم تعمل واضطررت لتغيرها حتى تعمل

وهذه ليست مشكلة

المشكلة هي الـ gems في مشروعي مثلاً استخدم activerecord-reputation-system

طبعاً جيم لعمل نظام تقييم للمشاركات مثل ماهو هنا في حسوب

لكن مثلاً هناك دالة داخل الـ gems اسمها rank_for

عندما اقوم باستخدامها يحصل خطأ في استعلام الدالة مع قواعد بيانات postgresql وأنا ليس لدي القدرة على التعديل عليها

فيحصل خطأ لا قدرة لي على تعديله

على العموم، SQLite هو الإفتراضي عند عمل مشروع ب Rails فقط لأنه الأسهل، أي لتكون التجربة أسهل، لا ينصح به أبدا على مشروع حقيقي في الظروف العادية.

للأسف لم اكن اعلم ذلك مسبقاً ، لكن لماذا؟

على كل حال في المستقبل لن استخدمها حتى اثناء العمل ،

شكرا لك

للأسف لم اكن اعلم ذلك مسبقاً ، لكن لماذا؟

SQLite بني بشكل ليعمل بشكل محمول على أنظمة لا تتطلب تنصيب محرك قاعدة البيانات، وأن تكون قاعدة البيانات محمولة أيضا وهي ما تجده على شكل ملف داخل ملفات المشروع لذلك هو مناسب أكثر لتطبيقات الهاتف أو حفظ معلومات وبيانات المستخدم في برنامج ما... لموقع ليس بمناسب جدا.

إن كان مشروعك عبارة عن موقع يعتمد على مدخلات المستخدمين بشكل كبير فلربما عليك استخدام MySQL.