> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/ar/aldam/support-guides/full-project-history-migration.md).

# (ترحيل v3.5.13) ترحيل السجل الكامل للمشروع

## ترحيل سجل المشروع الكامل

إن `3.5.x` يتضمن إصدار Community Edition الـ [ميزة سجل المشروع الكامل](https://www.overleaf.com/learn/latex/Using_the_History_feature) المتاحة بالفعل في عرضنا السحابي (SaaS)، [overleaf.com](http://overleaf.com/)

بعد ترقية مثيلك إلى Overleaf CE `3.5.13`، ستستخدم جميع المشاريع الجديدة سجل المشروع الكامل افتراضيًا. ستستمر المشاريع الحالية في استخدام نظام السجل القديم حتى يتم ترحيلها.

{% hint style="info" %}
إذا قمت بالترقية إلى `3.5.13` وقررت الرجوع إلى إصدار أقدم، فيجب عليك الاستعادة من نسخة احتياطية كاملة للنظام. إن سجل المشاريع التي أُنشئت في `3.5.13` غير متوافق مع الإصدارات الأقدم من Overleaf CE.
{% endhint %}

يوفر سجل المشروع الكامل الجديد عدة تحسينات للمستخدمين:

* إنه يتتبع التغييرات في الملفات الثنائية، وهو أمر غير مدعوم في النظام القديم.
* هناك دعم للإصدارات المعلّمة.
* النظام أكثر متانة بشكل عام، وهناك فرصة أقل لفقدان البيانات.

تحقق من [توثيق سجل المشروع الكامل](https://www.overleaf.com/learn/latex/Using_the_History_feature) للمزيد من المعلومات حول سجل المشروع الكامل.

### ترحيل المشاريع الحالية

{% stepper %}
{% step %}

#### أنشئ نسخة احتياطية

أنشئ نسخة احتياطية كاملة [احتياطية](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) لمثيلك مع لقطة متسقة من **mongo**, **redis** و **sharelatex** الأدلة.
{% endstep %}

{% step %}

#### حدّث

حدّث إصدار صورة sharelatex/sharelatex إلى 3.5.13.

Toolkit: استخدم `$ bin/upgrade` البرنامج النصي لترقية Toolkit إلى أحدث إصدار ثم عدّل **config/version** إلى 3.5.13.
{% endstep %}

{% step %}

#### ابدأ النسخة

من الأفضل أن تمنع المستخدمين من الوصول إلى مثيلك أثناء إجراء الترحيل، لتجنب فقدان البيانات في حال احتجت إلى استعادة النسخة الاحتياطية. انظر [الترحيل دون اتصال](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) لمزيد من المعلومات حول كيفية القيام بذلك.
{% endstep %}

{% step %}

#### انتظر حتى تعمل جميع الخدمات وتصبح قيد التشغيل

انتظر حتى تعمل جميع الخدمات وتصبح قيد التشغيل (انظر الأمر أدناه)

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
web sharelatex يعمل (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### شغّل برنامج الترحيل النصي

{% code overflow="wrap" %}

```bash
# مستخدمو Overleaf Toolkit:
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"

# مستخدمو legacy docker-compose.yml:
$ docker exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"
```

{% endcode %}

`--force-clean` يمسح بيانات سجل المشروع التي تم ترحيلها جزئيًا في النظام الجديد، وهذا يتيح إعادة محاولة الترحيل للمشاريع الفردية التي فشلت في المحاولات السابقة؛

`--fix-invalid-characters` يستبدل الأحرف غير القابلة للطباعة غير المدعومة بواسطة نظام السجل الجديد؛

`--convert-large-docs-to-file` يحوّل المستندات التي تتجاوز حد الحجم القابل للتحرير البالغ 2 ميغابايت إلى ملف غير قابل للتحرير)

يجب أن يبدو الناتج هكذا:

```bash
المشاريع المُرحَّلة  :  1
إجمالي المشاريع     :  51
المشاريع المتبقية :  51
إجمالي سجلات السجل المراد ترحيلها: 98
بدء الترحيل...
ترحيل المشروع: 63d29b5772dd80015a81bffe
نتيجة الترحيل { upgraded: true, historyType: 'NoneWithoutConversion' }
ترحيل المشروع: 63d29c2e72dd80015a81c0a2
نتيجة الترحيل { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

اكتمل الترحيل
==================
المشاريع المُرحَّلة:  51
المشاريع التي فشلت:  0
تم.
```

إذا نجح الترحيل، فستحصل على رمز خروج `0`، وستكون الأسطر الأخيرة تشير إلى عدم وجود إخفاقات:

```bash
المشاريع التي فشلت:  0
تم.
```

يمكنك إعادة فتح الوصول للمستخدمين (انظر الخطوة التالية). إذا كانت هناك إخفاقات، فالرجاء مراجعة قسم استكشاف الأخطاء وإصلاحها أدناه. ما يزال بإمكانك إعادة فتح الموقع إذا لم تُصلَح المشكلات فورًا، وستبقى المشاريع غير المُرحَّلة على نظام السجل القديم.
{% endstep %}

{% step %}

#### إعادة فتح الموقع

إذا كنت قد اخترت إجراء ترحيل دون اتصال، فستحتاج إلى إعادة فتح الموقع. إذا كنت ما تزال مسجّل الدخول، فستحتاج إلى:

1. انقر على **الإدارة** الزر واختر **إدارة الموقع**
2. انقر على زر **فتح/إغلاق المحرر** علامة التبويب
3. انقر على زر **إعادة فتح المحرر** الزر

إذا كنت قد أغلقت متصفحك، فستحتاج إلى إعادة تشغيل الموقع باستخدام `$ bin/up`.
{% endstep %}
{% endstepper %}

#### الترحيل دون اتصال

لمنع المستخدمين من تسجيل الدخول أثناء تشغيل برنامج ترحيل السجل، يُرجى اتباع الخطوات التالية:

* سجّل الدخول إلى مثيل Overleaf الخاص بك باستخدام حساب مدير
* انقر على **الإدارة** الزر واختر **إدارة الموقع**
* انقر على زر **فتح/إغلاق المحرر** علامة التبويب
* انقر على **إغلاق المحرر** الزر
* انقر على **فصل جميع المستخدمين** الزر

بمجرد القيام بذلك، إذا كان أي مستخدمين مسجلين الدخول فسيُعاد توجيههم إلى صفحة الصيانة، وأي مستخدمين جدد يزورون صفحة تسجيل الدخول سيرون صفحة الصيانة و **لن** سيكونون قادرين على تسجيل الدخول.

#### الترحيل عبر الإنترنت

يمكن تشغيل برامج الترحيل النصية بينما لا يزال التطبيق يعمل. هناك بعض الاعتبارات التي يجب أخذها في الحسبان:

* عملية الترحيل تستهلك قدرًا كبيرًا من المعالج، لذا ينبغي مراقبة استخدام الموارد أثناء تشغيل البرنامج النصي.
* مع قيمة عالية لـ `--concurrency` ، قد تواجه حلقة الأحداث في بعض الخدمات (`track-changes` بشكل خاص) بعض التوقف الجزئي، مما يؤدي إلى تجربة مستخدم متدهورة. نوصي بالبدء بالقيمة الافتراضية `--concurrency=1` .
* يمكنك إيقاف البرنامج النصي في أي وقت. وسيؤدي تشغيله مرة أخرى إلى استئناف الترحيل من حيث توقفت. هذا مفيد إذا كنت تفضّل تشغيل الترحيل في الساعات الأقل انشغالًا (مثلًا في الليل).

توصيتنا هي إغلاق الموقع وتشغيل الترحيل دون اتصال في نافذة صيانة عندما يكون عدد مشاريعك أقل من 1000 مشروع (`db.projects.count()`). إذا كان عدد المشاريع كبيرًا، يمكنك تشغيل البرنامج النصي ومراقبة تقدمه، ثم تقرر ما إذا كنت ستتابع تشغيله عبر الإنترنت أم دون اتصال بحسب حالتك الخاصة.

#### تنظيف بيانات السجل القديم

تمت إضافة برنامج نصي لتنظيف بيانات السجل القديم في Server Pro `3.5.6`, `4.0.6` و `4.1.0`.

{% code overflow="wrap" %}

```bash
bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/history/clean_sl_history_data.js"
```

{% endcode %}

يمكن تشغيل البرنامج النصي بعد ترحيل جميع المشاريع. ويمكن أيضًا استخدامه لإخلاء بعض المساحة أثناء إجراء ترحيل عبر الإنترنت.

{% hint style="info" %}
في Server Pro قبل الإصدار 3.5.13، يحذف البرنامج النصي محتوى `docHistory` و `docHistoryIndex` من المجموعات. لا يحرر MongoDB مساحة القرص بعد حذف المستندات، بل سيعيد استخدام تلك المساحة للمستندات المستقبلية في المجموعة نفسها. لن يكتب أي شيء إلى هذه المجموعات مرة أخرى بعد ترحيل السجل، لذلك ستبقى مساحة القرص غير مستخدمة.

إذا أردت إتاحة مساحة القرص مرة أخرى، يمكنك الترقية إلى Server Pro 3.5.13 (عند استخدام إصدار 3.x) أو Server Pro 4.2.5 (عند استخدام إصدار 4.x) ثم إعادة تشغيل برنامج التنظيف النصي.

برنامج التنظيف النصي المضمّن في أحدث إصدارات التصحيح من Server Pro لـ `3.5.x` وآخر `4.x.x` يحذف المجموعات كخطوة نهائية.

من الآمن إعادة تشغيل برنامج التنظيف النصي.
{% endhint %}

### استكشاف الأخطاء وإصلاحها

سنضيف هنا نصائح لاستكشاف الأخطاء وإصلاحها. يُرجى ملاحظة أنه رغم أننا نقدم الدعم عادةً لعملاء Server Pro فقط، وبالنظر إلى طبيعة هذا الترحيل، سنبذل أيضًا قصارى جهدنا لدعم عملاء CE الذين يواجهون مشكلات خاصة بترحيل سجل المشروع الكامل.

إذا فشل برنامج ترحيل سجل المشروع الكامل النصي (أي أنه خرج مع خطأ أو طبع عددًا غير صفري من المشاريع الفاشلة)، فالرجاء إرسال التفاصيل التالية إلى فريق الدعم لدينا عبر البريد الإلكتروني [support+historymigration@overleaf.com](mailto:support+historymigration@overleaf.com?subject=Full%20project%20history%20migration%20problem\&body=Instance%20Type%3A%20CE%20or%20Server%20Pro%20%28delete%20as%20appropriate%29%0A%0AInstallation%20Type%3A%20Overleaf%20toolkit%20or%20docker-compose.yml%20or%20other%20%28delete%20as%20appropriate%29%0A%0AScript%20output%3A%0A%0Abin%2Fdoctor%20output%20%28if%20using%20toolkit%29%3A%0A)، موضحًا ما يلي:

الموضوع: مشكلة في ترحيل سجل المشروع الكامل

* نوع المثيل: CE أو Server Pro (احذف ما لا ينطبق)
* نوع التثبيت: Overleaf toolkit أو `docker-compose.yml` أو غير ذلك (احذف ما لا ينطبق)
* الإصدار: 3.5.x (Toolkit: `$ cat config/version`)
* مخرجات برنامج الترحيل النصي (والتي يجب أن تكون موجودة داخل الحاوية تحت `/overleaf/services/web`)
* المشاريع المُرحَّلة: (حسب مخرجات برنامج الترحيل النصي)
* إجمالي المشاريع: (حسب مخرجات برنامج الترحيل النصي)
* المشاريع المتبقية: (حسب مخرجات برنامج الترحيل النصي)
* مدة الترحيل:
* `bin/doctor` المخرجات (عند استخدام Toolkit)
* إصدار Toolkit: `$ git rev-parse HEAD` (عند استخدام Toolkit)

فكر في إرفاق ملفات السجل الخاصة بـ `history-v1`, `project-history` و `track-changes` الخدمات مع البريد الإلكتروني. يمكنك العثور عليها في `/var/log/sharelatex` داخل `sharelatex` الحاوية وتصديرها هكذا:

```bash
$ docker cp sharelatex:/var/log/sharelatex/history-v1.log history-v1.log
$ docker cp sharelatex:/var/log/sharelatex/project-history.log project-history.log
$ docker cp sharelatex:/var/log/sharelatex/track-changes.log track-changes.log
```

يرجى حجب أي معلومات حساسة من ملفات السجل قبل إرفاقها.

#### العثور على أشجار الملفات المعطوبة

قد يفشل الترحيل في المشاريع التي تحتوي على شجرة ملفات غير سليمة (على سبيل المثال، حيث تكون أسماء الملفات فارغة). يمكنك العثور على قائمة بهذه المشكلات باستخدام `find_malformed_filetrees` البرنامج النصي الذي يتحقق من جميع المشاريع في قاعدة البيانات:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
BAD PATH: 123456789012345678901234 rootFolder.0.1.2.3
BAD PATH: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

لإصلاح المسارات غير الصالحة، استخدم `fix_malformed_filetree` البرنامج النصي، مع تشغيل الأمر مرة واحدة لكل مسار سيئ:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.1.2.3"
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.4.5.6"
...
```

{% endcode %}

#### خفض إصدار المشاريع من سجل المشروع الكامل إلى السجل القديم

إذا كان هناك مشروع قد تم ترحيله إلى سجل المشروع الكامل ولكنك تريد العودة إلى السجل القديم، فاستخدم `downgrade_project` البرنامج النصي كما يلي:

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; PROJECT_ID=YOUR
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/ar/aldam/support-guides/full-project-history-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
