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

  • mo7@mmed

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

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

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

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

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

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

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

فما هو الحل ؟

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

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

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

شكرا جزيلا لك

سأقوم بتجربتها

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

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

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

لا أعلم إن كنت ستجد واحدا... لكن في الغالب لا. الحل إن أردت SQLite حقا عليك تنصيب السرفر بنفسك.

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

لا أعلم ما تقصد، لكن من المفترض ألا تحدث هذه الأخطاء. معظم ال 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.

أعطنا مثالاً عن الاستعلامات التي تعمل على sqlite ولا تعمل على postgresql

من المفترض ألا تحصل معك هذه المشكلة أبداً

راجع الرد الذي كتبته للأخ Eol

-1

الأمر عادي، فمحركات قواعد البيانات لا تدعم SQL بشكل حرفي فكل منها يقوم باجتهاداته الخاصة.