Skip to main content

Migrasi riwayat proyek lengkap

Rilis 3.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.
Full Project History yang baru membawa beberapa peningkatan bagi pengguna:
  • 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.
Lihat dokumentasi Full Project History untuk informasi lebih lanjut tentang riwayat proyek lengkap.

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:
Jika migrasi berhasil, Anda akan mendapatkan kode keluar 0, dan baris terakhir yang menunjukkan tidak ada kegagalan:
Anda dapat membuka kembali akses untuk pengguna Anda (lihat langkah berikutnya). Jika terdapat kegagalan, silakan lihat bagian pemecahan masalah di bawah. Anda tetap dapat membuka kembali situs jika masalah tidak segera diperbaiki, dan proyek yang belum dimigrasikan akan tetap menggunakan sistem riwayat lama.
6

Buka kembali situs

Jika Anda memilih untuk melakukan migrasi offline, Anda perlu membuka kembali situs. Jika Anda masih login, Anda perlu:
  1. Klik tombol Admin dan pilih Manage Site
  2. Klik tab Open/Close Editor
  3. Klik tombol Reopen Editor
Jika Anda telah menutup browser, Anda perlu memulai ulang situs dengan $ 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
Setelah ini dilakukan, pengguna yang sedang login akan diarahkan ke halaman pemeliharaan, dan pengguna baru yang mengunjungi halaman login akan melihat halaman pemeliharaan dan tidak akan dapat login.

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 --concurrency yang tinggi, event loop di beberapa layanan (khususnya track-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).
Rekomendasi kami adalah menutup situs dan menjalankan migrasi secara offline dalam jendela pemeliharaan jika jumlah proyek Anda kurang dari 1000 proyek (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 Pro 3.5.6, 4.0.6, dan 4.1.0.
Skrip ini dapat dijalankan setelah semua proyek dimigrasikan. Skrip ini juga dapat digunakan untuk mengosongkan sebagian ruang saat melakukan migrasi online.
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.yml atau 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)
Pertimbangkan untuk melampirkan file log untuk layanan history-v1, project-history, dan track-changes ke email. Anda dapat menemukannya di /var/log/sharelatex di dalam kontainer sharelatex dan mengekspornya seperti ini:
Harap sembunyikan informasi sensitif apa pun dari file log sebelum melampirkannya.

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 skrip find_malformed_filetrees yang memeriksa semua proyek di database:
Untuk memperbaiki path yang tidak valid, gunakan skrip fix_malformed_filetree, dengan menjalankan perintah satu kali untuk setiap path yang rusak:
Jika ada proyek yang telah dimigrasikan ke riwayat proyek lengkap tetapi Anda ingin kembali ke riwayat lama, gunakan skrip downgrade_project sebagai berikut:
Terakhir diubah pada 4 Oktober 2026