bigazzzz
@bigazzzz

Многопроектный Trac на MySQL. Каждый раз создавать новую базу?

Есть настроенный и работающий Trac, расчитанный на многопроектность В качестве базы используется MySQL. На серваке (ubuntu-server) планируется крутить от 5 до 10 одновременно работающий проектов + достаточно много проектов в архиве, т.е. не в активной разработке.

Собственно проблема — каждый раз инициализируя новое окружение
sudo trac-admin /var/trac/new_proj initenv в работе мастера нужно указать базу данных через URI mysql://trac_user:trac_userpass@localhost:3306/trac_db
При инициализации нового окружения с той же базой данных мы получим ошибку
...OperationalError: (1050, "Table 'system' already exists")
Т.е. нужно каждый раз создавать новую, чистую базу данных.

Вопрос: Каким образом можно сделать использование префиксов в trac? Чтобы можно было использовать одну БД с разными префиксами таблиц. Например так, project1_system, project2_system… projectN_system
Или может еще какие пути решения существуют?
  • Вопрос задан
  • 2723 просмотра
Решения вопроса 1
DmZ
@DmZ
Простой вариант:
На данный момент невозможно, так как имена таблиц прописаны явно в некоторых местах (например SQL запросы в upgrade скриптах).

Средней сложности:
Дождаться когда будет поддержка в мейнстриме. Тикету #130 Multi-project support уже восемь лет, а воз и ныне там. Правда обсуждение продвинулось и начали реализовывать концепцию поддержки нескольких проектов одним энвом (немного не то что нужно вам).
Если посмотреть в тикете, то есть отсылки к костылям на PostgreSQL. Можно попробовать реализовать такой же подход с view и в MySQL, но простоты добавления энва это не добавит… Просто избавит от кучи баз в ущерб скорости и удобству.

Сложный вариант:
Реализовать такую поддержку самостоятельно и сабмитить патч в мейнстрим.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы