# Dump my database to a tar file
pg_dump -f myDatabase.tar -F t -h myServer -U myUser -W -i myDatabase
# create a new database
createdb -h myServer -U myUser -T template0 myDatabaseCopy
# restore my database
pg_restore -d myDatabaseCopy -h myServer -U myUser myDatabase.tar
Sau đó, tôi nhận được lỗi này và quá trình nhập không thành công cho toàn bộ bảng.Di chuyển cơ sở dữ liệu PostgreSQL không thành công trên các ký tự không phải ascii với 'giá trị quá dài'
psql: /home/me/myDatabase.tar: 660266: ERROR: giá trị quá dài cho loại ký tự khác nhau (100) CONTEXT: COPY myTable, dòng 591, cột myColumn: "Một thành viên cũ của Bộ Ngoại giao Hoa Kỳ của dự án Iraq và bây giờ tại Atlantic Cou ... "
Những chiếc mũ đó là những dấu ngoặc kép đơn và đôi khó chịu. Dường như với tôi như chúng vừa vặn trong cột lúc đầu, nhưng ở đâu đó trong quá trình xuất/nhập khẩu chúng mở rộng, và sau đó không còn phù hợp với cột nhân vật khác nhau (100).
Tôi thực sự đang di chuyển cơ sở dữ liệu trực tiếp trên máy chủ mà tôi có ít quyền, vì vậy giải pháp duy nhất của sql sẽ tuyệt vời. Có cách nào để làm điều gì đó như
UPDATE myTable SET myColumn = removeNonAscii(myColumn) WHERE hasNonAscii(myColumn)
EDIT: habe đã nhận. Tôi đã thay đổi
createdb -h myServer -U myUser -T template0 myDatabaseCopy
để
createdb -h myServer -U myUser -T template0 -E UTF8 myDatabaseCopy
và đó đã làm các trick.