السلام عليكم تحياتى للجميع ااعمل على تطبيق react native استخدم قاعدة بيانات sqlite
اريد اخذ نسخة احتياطية من قاعدة البيانات ورفعها على google drive
ليس عندى الكثير من العلم بهذا الشأن ولكن هذه، طريقة رأيتها مرة في فيديو لليوتيوب
أولاً، تحتاج إلى إنشاء مجلد جديد في مشروع React Native الخاص بك يسمى "backups".
ثم، تحتاج إلى إنشاء ملف جديد في هذا المجلد يسمى "backup.js".
في ملف "backup.js"، تحتاج إلى استيراد مكتبة "react-native-fs".
ثم، تحتاج إلى إنشاء دالة تسمى "backupDatabase".
في دالة "backupDatabase"، تحتاج إلى استدعاء دالة "readFileSync" من مكتبة "react-native-fs" لقراءة قاعدة البيانات من الجهاز.
بعد ذلك، تحتاج إلى استدعاء دالة "writeFileSync" من مكتبة "react-native-fs" لكتابة قاعدة البيانات إلى الملف في مجلد "backups".
أخيرًا، تحتاج إلى استدعاء دالة "uploadFile" من مكتبة "react-native-google-drive" لرفع الملف إلى Google Drive.
ثم عليك إنشاء ملف تعريف OAuth 2.0 لتطبيقك، كالتالي:
سيتم فتح نافذة جديدة تتضمن ملف التعريف الخاص بك، فاحفظ الملف في مكان آمن.
وعليك الآن استخدام المكتبات التالية:
وإليك مثال:
import SQLite from 'react-native-sqlite-storage'; import { GoogleSignin, statusCodes } from '@react-native-google-signin/google-signin'; import { GoogleDrive, MimeTypes } from 'react-native-google-drive-api-wrapper'; // اعتمادًا على هيكلة قاعدة البيانات الخاصة بك const databaseName = 'yourDatabase.db'; // قم بفتح الاتصال بقاعدة البيانات const db = SQLite.openDatabase({ name: databaseName }); // تحقق من تسجيل الدخول إلى Google const signIn = async () => { try { await GoogleSignin.hasPlayServices(); await GoogleSignin.signIn(); } catch (error) { console.error('Google Sign-In Error', error); } }; // قم بإجراء نسخة احتياطية لقاعدة البيانات const backupDatabase = async () => { await signIn(); db.transaction((tx) => { tx.executeSql( `ATTACH DATABASE ':memory:' AS backup; SELECT * INTO backup.${databaseName} FROM ${databaseName};`, [], (_, { rows }) => { const backupData = rows.item(0); // قم بتحميل البيانات إلى Google Drive GoogleDrive.files.createFileMultipart( backupData, MimeTypes.APPLICATION_SQLITE, { parents: ['root'], name: 'backup.db' }, ) .then((response) => { console.log('Backup uploaded to Google Drive:', response); }) .catch((error) => { console.error('Google Drive Upload Error', error); }); }, ); }); }; // استدعاء الوظيفة لإجراء النسخة الاحتياطية backupDatabase();
وبالطبع عليك مراجعة وثائق react-native-sqlite-storage و react-native-google-drive-api-wrapper لضبط الكود حسب ما تريد والتعامل مع الأخطاء بشكل صحيح.
التعليقات