Django and PostgreSQL8.4 設定筆記

Django 1.3

PostgreSQL 8.4

OS:Debian

因為種種原因,從mySQL轉為使用PostgreSQL。

但是因為PostgreSQL和mySQL的用法有些不一樣,所以在設定的過程中吃了些苦頭,在這邊做過筆記...

=============
一、安裝套件:
=============

除了用apt-get安裝了PostgreSQL套件之外,記得Django 的manual之中有交代要再裝psycopg2套件。

$>sudo apt-get install python-psycopg2



==========================
二、PostgreSQL增加使用者和資料庫:
==========================

PostgreSQL裝好之後,會在資料庫和你的系統裡面增加一名使用者 postgres。

所以一開始要先幫postgres設定新的password:

$>sudo passwd postgres

然後切換使用者變成postgres再進入一個名叫 "postgres" 的資料庫。


$>sudo su postgres
$>psql postgres      <== 這裡的 postgres 是資料庫名稱


postgres=#             <== 成功進入postgreSQL的話會變成這樣的提示符號,這裡的postgres是資料庫名稱。

先設定一下密碼:

postgres=# ALTER USER postgres WITH PASSWORD '密碼';

然後增加Django裡面要用的使用者帳號和設定密碼:

postgres=# CREATE USER 使用者帳號;
postgres=# ALTER USER 使用者帳號 WITH PASSWORD '密碼';

然後增加Django裡面要用的資料庫:

postgres=# CREATE DATABASE 資料庫名稱 OWNER 使用者名稱;

如果要看資料庫有沒有建成功的話可以用 \l (小寫的L) 這個指令來看:

postgres=# \l

退出資料庫:

postgres=# \q


===================
設定 Django 的 setting.py
===================

修改成下列的內容:


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': '資料庫名稱',
        'USER': '使用者帳號',
        'PASSWORD': '密碼',
        'HOST': '',
        'PORT': '',
    }
}

之後同步資料庫:
$>python manage.py syncdb


然後按照之前的方式開啟django的admin功能,登入...就會看到不想看到的錯誤訊息像是下面這樣:

Ident驗證使用者 "XXXXX" 失敗

我就是卡在這裡被卡了很久,最後是去更改

/etc/postgresql/8.4/main/pg_hba.conf

這個檔的內容變成:
(如果系統不支援ipv6的話,最好把最後一行去掉)

local      all      all      trust                                   
host      all      all      127.0.0.1/32      md5         
host      all      all       ::1/128              md5         

然後重新啓動postgresql。

$>sudo /etc/init.d/postgresql restart

如果沒有看到錯誤訊息的話,就表示這個pg_hba.conf檔這樣的設定是ok的。
(如果出現錯誤訊息的話...我也不知道怎麼辦...)


留言

熱門文章