แก้ปัญหาติดตั้ง OpenERP สร้างฐานข้อมูลไม่ผ่าน

  • 0 ตอบ
  • 1700 อ่าน
*

อั๋น ทรงวุฒิ

  • Sr. Member
  • ****
  • 299
  • 3
  • แพร่ เวียงโกศัย
    • ดูรายละเอียด
    • songwut.biz
กรณีที่พบ Error หน้าเว็บดังนี้

อ้างถึง
Client Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/openerp/addons/web/http.py", line 204, in dispatch
response["result"] = method(self, **self.params)
File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 774, in create
params['create_admin_pwd'])
File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 30, in proxy_method
result = self.session.send(self.service_name, method, *args)
File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 103, in send
raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)

Server Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 89, in send
return openerp.netsvc.dispatch_rpc(service_name, method, args)
File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 296, in dispatch_rpc
result = ExportService.getService(service_name).dispatch(method, params)
File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 122, in dispatch
return fn(*params)
File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 167, in exp_create_database
self._create_empty_database(db_name)
File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 136, in _create_empty_database
cr.execute("""CREATE DATABASE "%s" ENCODING 'unicode' TEMPLATE "%s" """ % (name, chosen_template))
File "/usr/lib/pymodules/python2.7/openerp/sql_db.py", line 161, in wrapper
return f(self, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/openerp/sql_db.py", line 226, in execute
res = self._obj.execute(query, params)

DataError: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)

HINT: Use the same encoding as in the template database, or use template0 as template.



ให้ลอง shell เข้าไปเป็น user postgres ก่อน

โค๊ด: [Select]
su postgres
โค๊ด: [Select]
$psql -l
                             List of databases
   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges
-----------+----------+-----------+---------+-------+-----------------------
 postgres  | postgres | SQL_ASCII | C       | C     |
 template0 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
 template1 | postgres | SQL_ASCII | C       | C     | =c/postgres          +
           |          |           |         |       | postgres=CTc/postgres
(3 rows)

แบบนี้แสดงว่าไม่สำเร็จแน่ เพราะ locale SQL_ASCII เข้ากับ UTF8 ไม่ได้

เราต้องเปลี่ยนด้วยวิธีการดังนี้

เข้า psql

โค๊ด: [Select]
update pg_database set encoding = 6, datcollate = 'en_US.UTF8', datctype = 'en_US.UTF8' where datname = 'postgres';

update pg_database set encoding = 6, datcollate = 'en_US.UTF8', datctype = 'en_US.UTF8' where datname = 'template0';

update pg_database set encoding = 6, datcollate = 'en_US.UTF8', datctype = 'en_US.UTF8' where datname = 'template1';


ลองตรวจสอบด้วยคำสั่ง

โค๊ด: [Select]
$ psql -l
                                 List of databases
   Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
-----------+----------+----------+------------+------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF8 | en_US.UTF8 |
 template0 | postgres | UTF8     | en_US.UTF8 | en_US.UTF8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF8 | en_US.UTF8 | =c/postgres          +
           |          |          |            |            | postgres=CTc/postgres
(3 rows)

แบบนี้ติดตั้งผ่านแน่นอน
« แก้ไขครั้งสุดท้าย: 16 กันยายน 2014, 05:06:11 PM โดย อั๋น ทรงวุฒิ »