السلام عليكم ورحمة الله وبركاته
كنت أعمل على مشروع ريلز بأستخدام قاعدة البيانات 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 ستعمل على أغلب محركات قواعد البيانات.
كلامك صحيح، لكن بالفعل هذا ماحصل هي ليست أخطاء كبيرة واستطيع تعديلها
مثلاً عند الإستعلام الذي يحتوي إنضمام مع عدة جداول عند عمل 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.