Singkatnya, Anda tidak dapat melakukan ini hanya dengan phpPgAdmin atau SQL tanpa mempertaruhkan korupsi data yang ada .Anda harus mengekspor semua data, membuat basis data dengan penyandian yang benar, dan memulihkan data yang diekspor.
Ini adalah bagaimana Anda harus melanjutkan:
-
membuat dump basis data :
pg_dump your_database > your_database.sql
ini akan menyimpan database Anda dalam format sql, dalam penyandian yang Anda miliki saat ini.
-
menghapus basis data (atau ganti namanya):
DROP DATABASE your_database
jika Anda memiliki penyimpanan yang cukup untuk melakukannya, saya sarankan untuk meninggalkan database lama sampai Anda memastikan semuanya baik-baik saja dengan yang baru, ganti nama itu:
ALTER DATABASE your_database RENAME TO your_database_backup;
-
buat database dengan enkode baru :
CREATE DATABASE your_database WITH ENCODING 'UNICODE' TEMPLATE=template0;
-
mengimpor data dari dump yang dibuat sebelumnya :
PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_database
Anda perlu mengatur pengkodean klien psql ke yang Anda miliki di database lama.
Mengubah penyandian saat itu juga tidak mungkin karena akan memerlukan penulisan ulang sebagian besar data basis data internal yang hampir sama dengan membuat ulang cara db yang saya jelaskan.
Dimungkinkan untuk hanya mengubah informasi postgres internal tentang database dan data baru apa pun setelah perubahan ini akan disimpan dengan benar, namun data Anda yang ada mungkin rusak .