Bagaimana saya menggabungkan data plugin Tempo untuk Jira Server dan Jira Cloud dan memigrasikannya kembali ke Jira Cloud

Halo semuanya!

Plugin Tempo untuk Atlassian Jira diinstal pada sejumlah besar instance Jira di cloud dan server. Saya harus menggabungkan data dari cloud dan server Jira dan mengatur data gabungan kembali ke Cloud. Selain data Jira standar, saya juga perlu menggabungkan data dari plugin Tempo. Pada artikel ini saya akan memberi tahu Anda bagaimana saya melakukan penyatuan dan migrasi data Tempo.

Data tempo yang saya migrasi:


  • Akun Tempo (akun)
  • Tim Tempo (tim)
  • Nilai-nilai bidang Akun dan Tim untuk semua ishui di Jira
  • Worklogs

Proses integrasi dan migrasi:


Saya mengambil dua Jira dengan konfigurasi berikut: Jira Software 7.11.2 dan Jira Service Desk 3.14.2. Kemudian saya menghapus cadangan dari Jira Cloud dan menginstalnya pada instance pertama, kemudian saya menghapus backup dari Jira Server dan menginstalnya pada instance kedua. Setelah itu, saya mentransfer data dari instance kedua ke yang pertama menggunakan plugin Configuration Manager (walaupun mungkin untuk menggunakan plugin Project Configurator ).

Sebagai hasilnya, saya menemukan bahwa pada contoh pertama, di mana data gabungan sudah berada, siap untuk ditransfer ke Cloud, data plugin Tempo berikut tidak ada:

  • Informasi Akun Tempo
  • data tentang tim Tempo
  • nilai dalam ish untuk bidang Akun dan Tim
  • penulis catatan kerja ish yang diunduh dari Jira Cloud

Itu perlu untuk mengisi data ini selama migrasi.

Bagaimana Saya Memigrasikan Data Plugin Tempo


Akun


Saya beruntung dengan akun itu. Plugin Tempo memiliki fungsi bawaan untuk mengekspor dan mengimpor akun.

Yang harus saya lakukan adalah mengekspor akun dari Jira Cloud dan Jira Server ke file sebelum menginstal data gabungan di Jira Cloud, dan kemudian, setelah memuat data gabungan ke Jira Cloud, impor file-file ini ke Cloud.

Hanya ada satu masalah bahwa beberapa kunci akun di Jira Cloud dan Jira Server adalah sama, jadi saya perlu mengubah kunci-kunci ini di salah satu file mereka. Jika tidak, saat mengimpor data akun dengan kunci yang sama, akun tersebut akan diperbarui atau diarsipkan, tetapi tidak ada opsi ini yang cocok untuk saya.

Tim


Dengan tim itu lebih sulit. Tidak ada fungsi bawaan untuk mentransfer perintah. Oleh karena itu, saya harus menggunakan Tempo Rest Api untuk mendapatkan data pada perintah, dan kemudian membuat perintah ini di Jira Cloud.

Saya menggunakan panggilan Istirahat berikut:

  • tim - untuk menerima data tentang tim dan membuat tim
  • keanggotaan tim - untuk menambah anggota tim
  • team_links - untuk menambahkan tautan ke tim di proyek atau papan

Saya juga ingin menggunakan Tempo Rest Api untuk mengatur izin perintah, tetapi menemukan bug di Api ini.

Menetapkan nilai yang benar di bidang Akun dan Tim untuk semua


Karena tidak ada informasi tentang arti bidang Akun dan Tim pada contoh gabungan Jira, saya harus menyimpan informasi ini sebelum bermigrasi.

Untuk Jira Cloud, saya menggunakan Jira Rest Api untuk mencari semua item yang memiliki bidang Akun atau Tim. Kemudian saya menyimpan semua ish ini dengan nilai bidang ke file.

Untuk Jira Server, saya menggunakan Jira Java API untuk mendapatkan nilai dari bidang Akun dan Tim.
Akibatnya, saya mendapat dua file dengan informasi tentang akun dan perintah untuk ish dari Jira Cloud dan Jira Server.

Masalahnya adalah setelah saya memigrasikan data gabungan ke Jira Cloud dan membuat akun dan tim, tim dan ID akun tidak sesuai dengan ID lama, jadi ketika saya menetapkan nilai yang benar untuk tim dan akun untuk ish, saya harus memetakan yang lama id di yang baru.

Untuk memperbarui bidang Akun dan Tim, saya menggunakan standar Jira Core Rest Api untuk memperbarui Ishu .

Catatan Pekerjaan


Tidak ada masalah dengan catatan kerja yang berasal dari ish dengan Jira Server. Semuanya ditunda tanpa koreksi, tetapi ada masalah dengan catatan tentang bekerja dari ish dengan Jira Cloud.

Ini disebabkan oleh fakta bahwa ketika catatan tentang kerja di Jira Cloud ditambahkan menggunakan plugin Tempo, catatan ini ditambahkan dari pengguna plugin Tempo, dan bukan dari pengguna yang membuat catatan ini. Oleh karena itu, untuk mendapatkan pengguna yang tepat, Anda harus mendapatkan pengguna ini dari basis data plugin Tempo.

Untuk alasan ini, saya harus mendapatkan pengguna yang tepat dari catatan kerja Jira Cloud sebelum melakukan migrasi.

Ini dilakukan sebagai berikut:

  1. Saya menemukan semuanya di Jira Cloud, di mana pengguna catatan kerja adalah pengguna plugin Tempo. Saya melakukan ini menggunakan panggilan Jira Core Rest standar.
  2. Kemudian saya mendapatkan semua catatan kerja Jira id dari yang diterima oleh Ish di langkah 1 dengan bantuan panggilan Istirahat ini .
  3. Kemudian saya menerima data dari plugin Tempo untuk semua catatan kerja yang diperoleh pada langkah 2 dan disimpan ke file. Saya menerima data menggunakan Tempo Rest Api .

Kemudian, setelah saya menginstal cadangan dengan data gabungan, saya menghapus semua catatan kerja yang ditambahkan dari pengguna standar plugin Tempo dan menambahkan catatan dari file yang saya terima di langkah 3.

Lebih baik mengatur bidang Perkiraan Tersisa saat menambahkan catatan pekerjaan ke opsional. Dalam hal ini, tidak perlu untuk mendapatkan nilai saat ini dari bidang Sisa Perkiraan untuk setiap kali Anda menambahkan entri pekerjaan.

Masalah yang tidak terduga


1. Ketika Anda menginstal plug-in Tempo Timesheets di Jira Cloud, koneksi dibuat antara Jira Cloud dan database Tempo, yang diperlukan sehingga ketika Anda menerima data dari plug-in Tempo, ia akan mendapatkan data untuk instance Jira Anda.

Masalahnya adalah jika Anda mengembalikan Jira Cloud dari cadangan, maka koneksi ini tidak lagi terlihat dari Jira Cloud dan karena itu Anda harus menginstal ulang plugin Tempo, dan dengan demikian koneksi baru terbentuk antara Jira Cloud dan Tempo. Namun, tautan lama sebenarnya ada di database Tempo.

Akibatnya, ketika Anda mulai bekerja dengan ish, data ditarik melalui koneksi lama dan baru, dan koneksi lama adalah primer (mis. Jika dalam database Tempo lama ada perintah dengan id yang sama seperti yang baru, maka nama perintah ini akan ditarik dari yang lama. DB Tempo). Tetapi jika Anda memasukkan Administrasi tim dan akun melalui antarmuka pengguna administrator, maka kami akan melihat data yang benar dari koneksi terakhir. Dan jika kita membuat Laporan Tempo khusus, maka kita juga akan melihat data yang benar. Oleh karena itu, koneksi lama harus dihapus, dan Anda hanya dapat menghapusnya dengan menghubungi dukungan Tempo. Dukungan sejati Tempo bekerja sangat cepat dan saya berterima kasih padanya.

2. Setelah saya memigrasi catatan kerja dengan Jira Server, beberapa catatan kerja memiliki tanggal pengurangan satu hari lebih awal dari yang dibutuhkan. Ini karena zona waktu pengguna dan tanggal pendebitan. Saya harus menulis sebuah program untuk menemukan semua catatan kerja seperti itu dan mengubah tanggal.

Secara umum, ini semua yang perlu Anda lakukan dan ketahui untuk berhasil mentransfer data dari plugin Tempo. Semoga informasi ini bermanfaat.

Source: https://habr.com/ru/post/id425613/


All Articles