• 0

كيف أغيّر نمط قواعد البيانات التي يستخدمها تطبيق ريلز الخاص بي من sqlite إلى Postgresql؟

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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'

 

2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن