- # apt-get install postgresql postgresql-client postgresql-contrib-8.3
Считаем, что python уже стоит:
- # apt-get install python-psycopg2
- # apt-get install postgresql-plpython-8.3
- # apt-get install python-svn python-subversion
Первый пакет предоставляет доступ к базе из python.
Второй пакет устанавливает возможность писать хранимые процедуры в БД на языке python, которые используются в trac.
Третий позволяет работать с svn репозиториями из python.
Создаем базу данных для trac и пользователя (роль) для базы данных:
- # su postgres
- $ createuser tracuser -P
- Enter password for new role:
- Введите снова:
- Shall the new role be a superuser? (y/n) y
Тут дописываем: /etc/postgresql/8.3/main/pg_hba.conf .
- local trac tracuser md5
Это надо для того, чтобы мы могли соединяться к базе через локальный сокет с помощью нашей роли в базе, а не через tcp/ip . По умолчанию все соединения через local идут для роли безопасности в конфигурационном файле indent sameuser - вкратце, необходимо наличия такого же системного пользователя.
После изменения - "$/etc/init.d/postgresql-8.3 restart" .
Создаем базу данных:
- $ createdb -T template0 -h localhost -U tracuser -W trac
Устанавливаем trac и создаем проект:
- # wget ftp://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
- # tar zxfv Trac-0.11.2.1.tar.gz
- # cd Trac-0.11.2.1
- # python ./setup.py install
- # trac-admin /path/to/myproject initenv
Это для создания нового проекта, для перемещения старого (в моем случае) копируем папку окружения, изменяем конфиг. Делаем бекап базы данных.
Например с windows:
- c:\Program Files\PostgreSQL\8.3\bin>pg_dump -U admin trac > tracplain.dump
Восстанавливаем на lenny созданную базу (createlang plpythonu pg_dump сам предусмотрительно прописывает, для этого мы сделали пользователя суперюзером):
# psql -U tracuser -W -f trac.plain trac
Устанавливаем trac через mod_wsgi
- # apt-get install libapache2-mod-wsgi
Прописываем в конфиге apache2
- WSGIScriptAlias /trac /path/to/trac/mysite.wsgi
- <directory "="" path="" to="" trac="">
- WSGIApplicationGroup %{GLOBAL}
- AuthType Basic
- AuthName "Trac"
- AuthUserFile /homr/svn/passwd
- Require valid-user
- Order deny,allow
- Allow from all
- </directory>
Файл с пользователями создаем с помощью passwd.
Содержание файла /path/to/trac/mysite.wsgi:
- # cat mysite.wsgi
- import os
- os.environ['TRAC_ENV'] = '/path/to/trac/'
- os.environ['PYTHON_EGG_CACHE'] = '/path/to/trac/eggs'
- import trac.web.main
- application = trac.web.main.dispatch_request
- import site
- site.addsitedir('/usr/lib/python2.5/site-packages')
Ресинхронизируем окружение:
- # trac-admin /path/to/trac/ resync
Осталось настроить права для каталога окружения проекта и все должно работать.
Также можно урезать права пользователю tracuser с помощью ALTER ROLE
И напоследок, Postgresql quickstart:
1. To start postgres
# /etc/init.d/postgresql start
2. To stop postgres
# /etc/init.d/postgresql stop
3. To start using postgres, change to user postgres
$ su - postgres
4. To create new database
$ createdb dbname
5. To delete database
$ dropdb dbname
6. To access database
$ psql dbname
7. To dump database (backup)
$ pg_dump dbname > backup.out
8. Reload db from file
$ psql -d dbname -f db.out
9. To dump all database to file
$ pg_dumpall > dumpall.sql
10. Reload all from file
$ psql -f dumpall.sql
11. List database
$ psql -l
12. Clean all database
$ vacuumdb --quiet --all
Commands inside psql (PostgreSQL interactive terminal)
1. Access psql
# psql
2. Get help about commands
# \h
3. Quit psql
# \q
4. Import from file
# \i input.sql
5. Show databases
# \l
6. Show tables
# \dt
7. Show users
# \du
8. Connect to database
# \c dbname
9. Change user password
# \c template1
# ALTER USER postgres with password 'new_password';
10. Clean database
# VACUUM FULL;
11. Help on syntax command
# \h SYNTAXNAME
Комментариев нет:
Отправить комментарий