اذهب إلى المحتوى

السؤال

نشر

كتبت تطبيق للويب بلغة روبي وإطار العمل Ruby On Rails، وقد استخدم التطبيق نمط قواعد البيانات SQLite افتراضيّا. فكيف يُمكنني تغييره ليستعمل Postgresql عوضا عن ذلك؟

Recommended Posts

  • 0
نشر

يُمكنك تحقيق مبتغاك باستعمال كل من جوهرة pg الخاصة بـ postgresql وجوهرة taps. وهذه الطريقة تحافظ على البيانات كما هي وتنقلها من نمط SQLite إلى Postgresql.

أولاً ثبّت Postgresql :

حدّث قائمة الحزم:

sudo apt-get update

ثبّت Postgresql والحزم التي تعتمد عليها:

sudo apt-get install postgresql postgresql-contrib libpq-dev 

أنشئ مستخدما لقاعدة البيانات:

sudo -u postgres createuser -s pguser 

استبدل pguser بأي اسم تريده على شرط أن تتذكّره.

أنشئ قواعد البيانات لكل من بيئة التطوير والاختبار:

create database اسم_المشروع_development; create database اسم_المشروع_test; 

حدّث ملف Gemfile:

gem 'sqlite3' 

gem 'pg' 

gem 'taps'

طبق الأمر:

bundle install 

غيّر ملف database.yml:

#development:
#  adapter: sqlite3
#  database: db/development.sqlite3
#  pool: 5
#  timeout: 5000

development:
  adapter: postgresql
  encoding: unicode
  database: اسم_المشروع_development
  pool: 5
  username: اسم_المستخدم_الخاص_بpostgresql
  password: كلمة_المرور_الخاصة_بPostgresql

  password:

#test:
#  adapter: sqlite3
#  database: db/test.sqlite3
#  pool: 5
#  timeout: 5000

test:
  adapter: postgresql
  encoding: unicode
  database: اسم_المشروع_test
  pool: 5
  username: اسم_المستخدم_الخاص_بPostgresql
  password: كلمة_المرور_الخاصة_بPostgresql

من سطر الأوامر شغّل خادوم taps على قاعدة بيانات SQLite:

taps server sqlite://db/development.sqlite3 user password

الجوهرة taps تحتاج إلى اسم مستخدم وكلمة مرور، SQLite لا تملكهما، لكن يُمكنك استخدام "user” كاسم للمستخدم و "password” لكلمة المرور.

قم بدمج البيانات:

taps pull postgres://اسم_المستخدم@localhost/اسم_المشروع_development http://user:password@localhost:5000

أعد تشغيل خادوم الويب :

rails s

ثم في الأخير تخلص من جوهرتي sqlite و taps لأننا لم نعد في حاجة إليهما.

#gem 'sqlite3'
gem 'pg'
#gem 'taps'

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...