Migrasi riwayat proyek lengkap
Rilis3.5.x dari Community Edition menyertakan fitur Full Project History yang sudah tersedia dalam penawaran SaaS kami, overleaf.com
Setelah meningkatkan instans Anda ke Overleaf CE 3.5.13, semua proyek baru akan menggunakan Full Project History secara default. Proyek yang sudah ada akan tetap menggunakan sistem History lama hingga proyek tersebut dimigrasikan.
Jika Anda meningkatkan ke
3.5.13 lalu memutuskan untuk menurunkan versi ke versi sebelumnya, Anda harus memulihkan dari cadangan sistem lengkap. Riwayat proyek yang dibuat di 3.5.13 tidak kompatibel dengan versi Overleaf CE sebelumnya.- Fitur ini melacak perubahan pada file biner, yang tidak didukung di sistem lama.
- Terdapat dukungan untuk versi berlabel.
- Sistem ini secara umum lebih tangguh, sehingga kemungkinan kehilangan data lebih kecil.
Memigrasikan proyek yang sudah ada
1
Buat cadangan
Buat cadangan lengkap instans Anda dengan snapshot yang konsisten dari direktori mongo, redis, dan sharelatex.
2
Perbarui
Perbarui versi image sharelatex/sharelatex ke 3.5.13.Toolkit: Gunakan skrip
$ bin/upgrade untuk meningkatkan toolkit ke versi terbaru dan edit config/version menjadi 3.5.13.3
Jalankan instans
Idealnya, Anda sebaiknya mencegah pengguna mengakses instans Anda selama migrasi berlangsung, untuk menghindari kehilangan data jika Anda perlu memulihkan cadangan. Lihat Migrasi offline untuk informasi lebih lanjut tentang cara melakukannya.
4
Tunggu hingga semua layanan aktif dan berjalan
Tunggu hingga semua layanan aktif dan berjalan (lihat perintah di bawah)
5
Jalankan skrip migrasi
--force-clean menghapus data riwayat proyek yang termigrasi sebagian di sistem baru, sehingga memungkinkan migrasi diulang untuk proyek-proyek individual yang gagal pada percobaan sebelumnya;--fix-invalid-characters mengganti karakter yang tidak dapat dicetak yang tidak didukung oleh sistem riwayat baru;--convert-large-docs-to-file mengonversi dokumen yang melebihi ambang ukuran yang dapat diedit sebesar 2MB menjadi file yang tidak dapat diedit)Output-nya akan terlihat seperti ini:0, dan baris terakhir yang menunjukkan tidak ada kegagalan:6
Buka kembali situs
Jika Anda memilih untuk melakukan migrasi offline, Anda perlu membuka kembali situs. Jika Anda masih login, Anda perlu:
- Klik tombol Admin dan pilih Manage Site
- Klik tab Open/Close Editor
- Klik tombol Reopen Editor
$ bin/up.Migrasi offline
Untuk mencegah pengguna dapat login saat skrip migrasi riwayat sedang berjalan, ikuti langkah-langkah berikut:- Masuk ke instans Overleaf Anda dengan akun admin
- Klik tombol Admin dan pilih Manage Site
- Klik tab Open/Close Editor
- Klik tombol Close Editor
- Klik tombol Disconnect all users
Migrasi online
Skrip migrasi dapat dijalankan saat aplikasi masih berjalan. Ada beberapa pertimbangan yang perlu diperhatikan:- Proses migrasi membutuhkan CPU yang intensif, jadi Anda sebaiknya memantau penggunaan sumber daya saat skrip berjalan.
- Dengan nilai
--concurrencyyang tinggi, event loop di beberapa layanan (khususnyatrack-changes) mungkin mengalami pemblokiran, yang dapat menurunkan pengalaman pengguna. Kami menyarankan untuk memulai dengan nilai default--concurrency=1. - Anda dapat menghentikan skrip kapan saja. Menjalankannya kembali akan melanjutkan migrasi dari titik terakhir Anda berhenti. Ini berguna jika Anda lebih suka menjalankan migrasi pada jam-jam yang tidak sibuk (misalnya pada malam hari).
db.projects.count()). Jika jumlah proyek besar, Anda dapat menjalankan skrip dan memantau kemajuannya, lalu memutuskan apakah akan melanjutkannya secara online atau offline berdasarkan kasus Anda.
Membersihkan data riwayat lama
Skrip untuk membersihkan data riwayat lama telah ditambahkan di Server Pro3.5.6, 4.0.6, dan 4.1.0.
Di Server Pro sebelum versi 3.5.13, skrip ini menghapus isi koleksi
docHistory dan docHistoryIndex. MongoDB tidak melepaskan ruang disk setelah Anda menghapus dokumen; sebaliknya, MongoDB akan menggunakan kembali ruang tersebut untuk dokumen-dokumen berikutnya dalam koleksi yang sama. Tidak ada yang akan menulis ke koleksi ini lagi setelah migrasi riwayat, sehingga ruang disk tersebut akan tetap tidak terpakai.Jika Anda ingin membuat ruang disk tersedia kembali, Anda dapat meningkatkan ke Server Pro 3.5.13 (jika masih menggunakan rilis 3.x) atau Server Pro 4.2.5 (jika menggunakan rilis 4.x) dan menjalankan ulang skrip pembersihan.Skrip pembersihan yang disertakan dalam rilis patch terbaru Server Pro 3.5.x dan 4.x.x terbaru menghapus (drop) koleksi tersebut sebagai langkah terakhir.Skrip pembersihan aman untuk dijalankan ulang.Pemecahan Masalah
Kami akan menambahkan saran pemecahan masalah di sini. Harap diperhatikan bahwa meskipun kami biasanya hanya menawarkan dukungan kepada pelanggan Server Pro, mengingat sifat migrasi ini, kami juga akan berusaha sebaik mungkin untuk mendukung pelanggan CE yang mengalami masalah khusus terkait migrasi riwayat proyek lengkap. Jika skrip migrasi riwayat proyek lengkap gagal (yaitu keluar dengan error atau mencetak jumlah proyek gagal yang tidak nol), silakan kirimkan detail berikut ke tim dukungan kami melalui email support+historymigration@overleaf.com, yang merinci: Subjek: Full project history migration problem- Jenis Instans: CE atau Server Pro (hapus yang tidak sesuai)
-
Jenis Instalasi: Overleaf toolkit atau
docker-compose.ymlatau lainnya (hapus yang tidak sesuai) -
Versi: 3.5.x (toolkit:
$ cat config/version) -
Output skrip migrasi (yang seharusnya berada di dalam kontainer di bawah
/overleaf/services/web) - Migrated Projects: (sesuai output skrip migrasi)
- Total Projects: (sesuai output skrip migrasi)
- Remaining Projects: (sesuai output skrip migrasi)
- Durasi migrasi:
-
Output
bin/doctor(jika menggunakan toolkit) -
Versi Toolkit:
$ git rev-parse HEAD(jika menggunakan Toolkit)
history-v1, project-history, dan track-changes ke email. Anda dapat menemukannya di /var/log/sharelatex di dalam kontainer sharelatex dan mengekspornya seperti ini:
Menemukan pohon file yang rusak
Migrasi dapat gagal untuk proyek yang memiliki pohon file yang tidak valid (misalnya, ketika nama file kosong). Anda dapat menemukan daftar masalah ini menggunakan skripfind_malformed_filetrees yang memeriksa semua proyek di database:
fix_malformed_filetree, dengan menjalankan perintah satu kali untuk setiap path yang rusak:
Menurunkan proyek dari riwayat proyek lengkap ke riwayat lama
Jika ada proyek yang telah dimigrasikan ke riwayat proyek lengkap tetapi Anda ingin kembali ke riwayat lama, gunakan skripdowngrade_project sebagai berikut:

