Cara migrasi primary key int/bigint ke uuid untuk kemungkinan duplikasi data yang lebih kecil

Untuk melakukan migrasi primary key BigInt ke UUID, dapat dilakukan langkah-langkah sebagai berikut:

  1. Buat kolom UUID baru di tabel yang akan di-migrate. Kolom UUID ini akan digunakan sebagai primary key baru setelah migrasi selesai.

  2. Copy nilai dari kolom BigInt ke kolom UUID baru. Ini dapat dilakukan dengan menjalankan query SQL seperti berikut:

UPDATE nama_tabel SET kolom_uuid = kolom_bigint;
  1. Generate UUID untuk data yang belum memiliki nilai di kolom UUID. Ini dapat dilakukan dengan menjalankan query SQL seperti berikut:
UPDATE nama_tabel SET kolom_uuid = uuid_generate_v4() WHERE kolom_uuid IS NULL;
  1. Buat primary key baru dengan menggunakan kolom UUID. Ini dapat dilakukan dengan menjalankan query SQL seperti berikut:
ALTER TABLE nama_tabel ADD PRIMARY KEY (kolom_uuid);
  1. Hapus kolom BigInt yang tidak lagi digunakan sebagai primary key. Ini dapat dilakukan dengan menjalankan query SQL seperti berikut:
ALTER TABLE nama_tabel DROP COLUMN kolom_bigint;

Setelah melakukan langkah-langkah di atas, primary key BigInt akan berhasil di-migrate ke UUID. Namun, perlu diingat bahwa proses migrasi ini dapat membutuhkan waktu yang lama tergantung pada jumlah data yang ada di dalam tabel yang di-migrate. Jadi, sebaiknya lakukan proses migrasi ini saat aplikasi sedang tidak digunakan atau sedang dalam keadaan maintenance.

Lucky Ardhika

Lebih dekat dengan saya di https://luckyard110.github.io/

Posting Komentar

Berkomentarlah Dengan Baik dan Sopan

Lebih baru Lebih lama