Re: [Trac] Converting from sqlite to mariadb/mysql
Bruce Dubbs <[email protected]> Fri, 6 Feb 2026 12:14:57 -0600
| Newsgroups | gmane.comp.version-control.subversion.trac.general |
|---|---|
| Message-ID | <[email protected]> |
On 2/6/26 12:43 AM, Jun Omae wrote:
> On 2026/02/06 12:30, Bruce Dubbs wrote:
>> On 2/5/26 8:39 PM, Jun Omae wrote:
>>> Hi,
>>>
>>> On Fri, Feb 6, 2026 at 10:37=E2=80=AFAM Bruce Dubbs <bruce.dubbs@gmail.=
com> wrote:
>>>>
>>>> At the linuxfromscratch project we have been using Trac for a very lon=
g time. The last time we updated Trac was in 2021 using the latest develop=
ment system at that time. Over the years our sqlite databases have grown q=
uite large: 287M, 884M, and 642M respectively.
>>>>
>>>> We have noticed some response problems and want to update to the lates=
t Trac and convert to mariadb.
>>>>
>>>> Doing some testing on a test server we installed python3.13, Trac-1.6,=
PyMySQL, and mariadb-11.8.5. We then copied a current trac.db to the test =
system and ran sqlite3mysql to copy the trac.db into mariadb.
>>>>
>>>> We can log into mariadb with 'mariadb -u tracuser -p trac_db' and all=
looks good. We do have a symlink /usr/bin/mysql -> mariadb
>>>>
>>>> We then edited the trac.ini file to read:
>>>>
>>>> #[sqlite]
>>>> #extensions =3D
>>>> ...
>>>> [trac]
>>>> ...
>>>> #database =3D sqlite:db/trac.db
>>>> #database =3D mysql://tracuser:password/trac_db?unix_socket=3D/run/mar=
iadb/
>>>> mariadb.sock
>>>> database =3D mysql://tracuser:password@localhost/trac_db
>>>>
>>>> but no matter what we try after restarting apache get the error messag=
e:
>>>>
>>>> TracError: Unable to check for upgrade of trac.db.api.DatabaseManager:=
TracError: Unsupported database type "mysql"
>>>>
>>>> What are we missing?
>>>
>>> I'd suggest to check errors in trac.log. The pymysql library is
>>> required for MySQL but it is unavailable in your environment.
>>
>> I did look at trac.log. It just says the error message above.
>> I also said above that pymysql is installed. I checked with:
>>
>> $ python3
>> Python 3.13.7 (main, Feb 3 2026, 16:47:05) [GCC 15.2.0] on linux
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> import pymysql
>>
>> without error.
>>
>> I tried the following:
>>
>> trac-admin /srv/trac/lfs convert_db mysql://tracuser:password@localhost/=
trac_db
>>
>> But got the following:
>>
>> /usr/lib/python3.13/site-packages/trac/__init__.py:14: UserWarning: pkg_=
resources is
>> deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resou=
rces.html.
>> The pkg_resources package is slated for removal as early as 2025-11-30. =
Refrain from
>> using this package or pin to Setuptools<81.
>>
>> from pkg_resources import DistributionNotFound, get_distribution
>> Error: Unable to check for upgrade of trac.db.api.DatabaseManager: Timeo=
utError:
>> Unable to get database connection within 10 seconds.
>=20
> I guess it is failing to connect to the database via TCP. Please check
> connecting to the database via TCP connection using mariadb client.
>=20
>> #database =3D mysql://tracuser:password/trac_db?unix_socket=3D/run/maria=
db/
>> mariadb.sock
>=20
> If you want to use unix domain socket, use like the following ("@" charac=
ter is
> needed after the password):
>=20
> mysql://tracuser:password@/trac_db?unix_socket=3D/run/mariadb/mariadb.=
sock
I had tried that earlier, but I did not have the @ after the password. I s=
et that up=20
and restarted apache, but still got two errors in the log (slightly formatt=
ed for=20
spacing):
2026-02-06 11:44:29,086 Trac[env]
ERROR: Exception caught while checking for upgrade:
TracError: Unable to check for upgrade of trac.db.api.DatabaseManager:
TracError: Unsupported database type "mysql"
I also rechecked that mariadb/mysql is listening at port 3306 and retried w=
ith
database =3D mysql://tracuser:password@localhost/trac_db
and got the same answer.
To me it appears that Trac is not even trying to connect to the database. =
It does=20
work if I revert to sqlite.
What can I try next?
--=20
You received this message because you are subscribed to the Google Groups "=
Trac Users" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to trac-users+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/[email protected]
To view this discussion visit https://groups.google.com/d/msgid/trac-users/=
b218cdce-9e71-414f-bfc4-56e1a2119d82%40gmail.com.