Cara Naik Taraf & Migrasi PostgreSQL dalam ServBay
Bagi pembangun web, mengurus versi pangkalan data dalam persekitaran pembangunan tempatan adalah sangat penting. Naik taraf atau menukar versi PostgreSQL sering diperlukan untuk menikmati ciri baharu, kemas kini keselamatan, atau memenuhi keperluan keserasian projek tertentu. Sebagai alat pembangunan web tempatan yang berkuasa, ServBay membolehkan anda memasang dan mengurus pelbagai versi PostgreSQL dengan mudah serta bertukar antara versi tersebut.
Dokumen ini memberi panduan terperinci tentang cara bertukar versi PostgreSQL lalai dalam persekitaran ServBay secara selamat dan cekap. Kami akan menggunakan contoh migrasi daripada PostgreSQL 10 ke PostgreSQL 16, tetapi langkah-langkah ini boleh diaplikasikan untuk mana-mana pertukaran versi PostgreSQL yang disokong ServBay.
Gambaran Keseluruhan
Proses utama pertukaran versi PostgreSQL melibatkan: membuat sandaran pangkalan data sedia ada, memasang versi baharu, mengkonfigurasi versi lalai dalam ServBay, serta memulihkan sandaran data ke versi terbaharu. Jika dilakukan dengan betul, langkah-langkah ini dapat meminimumkan risiko kehilangan data atau masalah keserasian.
Senario Penggunaan
- Naik taraf ke versi terkini: Mendapatkan prestasi lebih baik, ciri baharu, dan patch keselamatan.
- Ujian keserasian: Uji aplikasi anda dengan versi PostgreSQL baharu sebelum naik taraf persekitaran produksi.
- Penuhi kehendak projek: Sesetengah projek mungkin memerlukan versi PostgreSQL tertentu.
- Menurun ke versi lama: Jika menghadapi isu keserasian, anda boleh beralih semula ke versi sebelumnya.
Prasyarat
Sebelum memulakan, pastikan anda memenuhi syarat berikut:
- ServBay telah dipasang dan berjalan.
- Anda mempunyai pengetahuan asas tentang pengurusan pakej ServBay dan panel tetapan.
- Anda memiliki hak pentadbir untuk ServBay.
- Anda tahu asas penggunaan baris perintah (command line).
- Pastikan ruang storan cakera mencukupi untuk menyimpan fail sandaran penuh pangkalan data.
Langkah-langkah
Berikut ialah langkah terperinci untuk menukar versi lalai PostgreSQL dalam ServBay:
1. Sandaran Pangkalan Data Versi Lama
Sebelum melakukan sebarang pertukaran versi, amat disarankan anda membuat sandaran penuh PostgreSQL sedia ada. Ini adalah langkah terpenting untuk mengelakkan kehilangan data. Anda boleh menggunakan arahan pg_dumpall
untuk menyandarkan semua pangkalan data (termasuk sistem dan pengguna) dalam pelayan PostgreSQL.
Buka aplikasi terminal anda dan jalankan arahan berikut:
bash
pg_dumpall -U postgres -f postgresql_backup.sql
1
-U postgres
: Menyambung sebagai pengguna super PostgreSQL lalai,postgres
.-f postgresql_backup.sql
: Keluarkan hasil sandaran ke failpostgresql_backup.sql
dalam direktori semasa.
Semasa menjalankan arahan di atas, sistem akan meminta kata laluan untuk pengguna postgres
. Masukkan kata laluan dengan betul untuk memulakan proses sandaran. Setelah selesai, anda akan menemukan fail postgresql_backup.sql
dalam folder semasa. Pastikan anda menyimpan fail sandaran ini dengan selamat.
2. Pasang Versi Baharu Melalui ServBay
Dalam antaramuka grafik ServBay (GUI), cari dan buka Panel Pakej (atau mungkin dinamakan “Panel Servis” dalam versi lama).
Pada bar navigasi sebelah kiri, pilih Pangkalan Data, kemudian cari PostgreSQL. Anda akan melihat senarai versi PostgreSQL yang disokong ServBay. Klik butang “Pasang” di sebelah versi yang ingin anda gunakan (contohnya PostgreSQL 16).
ServBay akan memuat turun dan memasang versi PostgreSQL yang dipilih secara automatik. Sila tunggu sehingga pemasangan selesai.
3. Lumpuhkan Versi PostgreSQL Lama dalam ServBay
Selepas pemasangan versi baharu, untuk mengelakkan konflik port atau penggunaan versi lama secara tidak sengaja, disarankan anda melumpuhkan servis PostgreSQL versi lama.
Dalam Panel Pakej ServBay -> Pangkalan Data -> senarai PostgreSQL, cari versi lama yang sedang berjalan (contohnya PostgreSQL 10). Klik suis lumpuhkan (biasanya hijau jika aktif, akan menjadi kelabu selepas dilumpuhkan).
Pastikan status servis PostgreSQL versi lama telah bertukar kepada "dilumpuhkan".
4. Aktifkan PostgreSQL Versi Baharu dalam ServBay
Selepas versi lama dilumpuhkan, aktifkan servis PostgreSQL baharu yang baru dipasang.
Dalam Panel Pakej ServBay -> Pangkalan Data -> senarai PostgreSQL, cari versi baharu (contohnya PostgreSQL 16). Klik suis aktifkan (biasanya kelabu jika dilumpuhkan, akan bertukar hijau selepas diaktifkan).
Tunggu seketika dan pastikan status servis versi baharu menjadi "berjalan" (hijau).
5. Tukar Versi Lalai PostgreSQL dalam Tetapan ServBay
ServBay membenarkan anda menetapkan satu versi PostgreSQL sebagai "lalai". Versi ini akan digunakan apabila anda menjalankan arahan seperti psql
dalam terminal.
Buka Panel Tetapan ServBay. Cari bahagian tetapan berkaitan pangkalan data atau PostgreSQL. Di sini, anda boleh pilih versi PostgreSQL terpasang yang ingin dijadikan lalai untuk sistem.
Pilih versi baharu yang anda aktifkan tadi (misalnya PostgreSQL 16), kemudian klik butang Apply di bahagian bawah antaramuka.
6. Sahkan Penukaran Lalai dalam Panel Pakej
Kembali ke Panel Pakej -> Pangkalan Data -> senarai PostgreSQL dalam ServBay. Anda sepatutnya melihat versi baharu (misalnya PostgreSQL 16) mempunyai penanda "lalai" atau tanda lain yang menunjukkan ia telah berjaya dijadikan versi lalai.
7. Sahkan Versi Lalai dari Command Line
Walaupun GUI ServBay sudah dipaparkan, pengesahan melalui command line memastikan persekitaran sistem anda (khususnya pembolehubah PATH) telah dikemas kini kepada PostgreSQL versi baharu.
Buka tetingkap terminal baharu (atau jalankan source ~/.zshrc
atau source ~/.bash_profile
mengikut konfigurasi shell anda) untuk memastikan perubahan PATH berkuat kuasa. Kemudian, jalankan:
bash
psql --version
1
Keluaran sepatutnya menunjukkan versi baharu yang anda tetapkan (contohnya psql (PostgreSQL) 16.x.x
).
Jika masih menunjukkan versi lama, anda mungkin perlu keluar dan buka semula aplikasi ServBay sepenuhnya, atau kemas kini konfigurasi pembolehubah persekitaran terminal secara manual.
8. Pulihkan Pangkalan Data
Kini, anda perlu memulihkan data sandaran ke PostgreSQL versi baharu. Pastikan servis PostgreSQL versi baharu sedang berjalan.
Dalam terminal, pergi ke folder yang mengandungi fail sandaran postgresql_backup.sql
, dan jalankan arahan berikut:
bash
psql -U postgres -f postgresql_backup.sql
1
-U postgres
: Sambung sebagai penggunapostgres
versi baharu.-f postgresql_backup.sql
: Baca dan laksanakan arahan SQL daripadapostgresql_backup.sql
.
Sistem akan meminta kata laluan pengguna postgres
. Masukkan kata laluan untuk memulakan proses pemulihan. Masa yang diperlukan bergantung pada saiz fail sandaran anda.
Nota: Jika fail sandaran anda mengandungi arahan penciptaan pangkalan data dan pangkalan data tersebut telah wujud dalam versi baharu, ralat mungkin akan berlaku semasa pemulihan. Dalam situasi ini, anda perlu padam dulu pangkalan data konflik dari versi baharu (berhati-hati—pastikan pangkalan data itu tidak penting atau anda mempunyai sandaran lain) sebelum menjalankan arahan pemulihan semula. Gunakan DROP DATABASE dbname;
untuk memadam pangkalan data.
9. Sahkan Semua Data Telah Dipulihkan
Selepas pemulihan selesai, log masuk ke pelayan PostgreSQL versi baharu dan semak sama ada pangkalan data serta data anda wujud dan lengkap.
dalam terminal, jalankan:
bash
psql -U postgres
1
Masukkan kata laluan pengguna postgres
. Selepas log masuk, gunakan arahan berikut untuk menyemak semua senarai pangkalan data:
sql
\l
1
Seterusnya, anda boleh sambung ke pangkalan data tertentu (contohnya \c your_database_name
), dan semak struktur serta data jadual (contohnya \d your_table_name
, SELECT COUNT(*) FROM your_table_name;
) bagi pengesahan integriti data.
sql
\c servbay_demo_db -- Sambung ke contoh pangkalan data
\d -- Senarai semua jadual
SELECT * FROM your_table_name LIMIT 10; -- Tunjukkan beberapa data jadual
1
2
3
2
3
Setelah mengesahkan kesemua data penting berjaya dipulihkan, anda boleh memulakan pembangunan dalam persekitaran PostgreSQL versi baharu.
Perhatian
- Keserasian Data: Walaupun PostgreSQL mempunyai tahap keserasian yang baik antara versi, migrasi merentasi beberapa versi utama boleh mengakibatkan isu keserasian data atau ciri tertentu. Sentiasa rujuk dokumentasi rasmi PostgreSQL berkaitan penjelasan lanjut keserasian versi.
- Keserasian Aplikasi: Kod aplikasi, driver pangkalan data, atau ORM anda mungkin memerlukan kemas kini untuk serasi sepenuhnya dengan PostgreSQL versi baharu. Pastikan anda menguji aplikasi secara menyeluruh selepas sebarang pertukaran versi.
- Pengurusan Kata Laluan: Sepanjang proses, anda perlu tahu kata laluan pengguna
postgres
. Jika terlupa, ServBay menyediakan fungsi reset kata laluan root PostgreSQL. - Sahkan Sandaran: Walaupun panduan ini merangkumi langkah pemulihan, sebaik-baiknya uji kemampuan fail sandaran di persekitaran bebas sebelum melakukan operasi pada persekitaran penting untuk memastikan fail sandaran benar-benar boleh digunakan.
Soalan Lazim (FAQ)
- S: Jika ralat “database already exists” semasa pemulihan, apa patut saya buat?
- J: Jika fail sandaran mengandungi arahan
CREATE DATABASE
dan pangkalan data sama sudah wujud, pemulihan akan gagal. Jika pangkalan data itu bukan yang anda cipta secara manual serta tidak perlu dikekalkan, log masuk ke PostgreSQL versi baharu (psql -U postgres
), gunakan arahanDROP DATABASE dbname;
untuk padam pangkalan data bertindih, kemudian laksanakan arahan pemulihan semula. Sila pastikan pangkalan data yang dipadam boleh dipulihkan semula!
- J: Jika fail sandaran mengandungi arahan
- S: Saya telah pasang pelbagai versi PostgreSQL dalam ServBay, tetapi
psql --version
bukan versi lalai yang saya tetapkan?- J: Ini biasanya berpunca daripada pembolehubah persekitaran yang belum dikemas kini. Cuba tutup dan buka semula tetingkap terminal anda, atau jalankan
source ~/.zshrc
(atau fail konfigurasi shell anda). Jika masalah berterusan, cuba keluar sepenuhnya dari aplikasi ServBay dan buka semula.
- J: Ini biasanya berpunca daripada pembolehubah persekitaran yang belum dikemas kini. Cuba tutup dan buka semula tetingkap terminal anda, atau jalankan
- S: Selepas tukar versi, aplikasi saya gagal sambung ke pangkalan data?
- J: Semak konfigurasi sambungan pangkalan data aplikasi anda, pastikan ia menggunakan port yang didengar oleh PostgreSQL versi baharu (kebiasaannya 5432). Semak juga sama ada driver atau ORM aplikasi serasi dengan PostgreSQL versi baharu.
Rumusan
Dengan mengikuti langkah yang diberikan, anda boleh bertukar versi lalai PostgreSQL dalam ServBay dengan selamat dan lancar. Pastikan anda membuat sandaran sepenuhnya terlebih dahulu, urus pemasangan dan konfigurasi versi dalam ServBay, kemudian pulihkan data dan lakukan pengesahan. Manfaatkan kemudahan yang ditawarkan ServBay supaya anda boleh mengurus persekitaran pangkalan data tempatan lebih fleksibel untuk memenuhi keperluan pelbagai projek.