Re: [Trac] Converting from sqlite to mariadb/mysql

Jun Omae <[email protected]> Fri, 6 Feb 2026 15:43:40 +0900
Newsgroups gmane.comp.version-control.subversion.trac.general
Message-ID <[email protected]>
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 <[email protected]=
om> wrote:
>>>
>>> At the linuxfromscratch project we have been using Trac for a very long=
 time.  The last time we updated Trac was in 2021 using the latest developm=
ent system at that time.  Over the years our sqlite databases have grown qu=
ite large: 287M, 884M, and 642M respectively.
>>>
>>> We have noticed some response problems and want to update to the latest=
 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 s=
ystem 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/mari=
adb/
>>>      mariadb.sock
>>> database =3D mysql://tracuser:password@localhost/trac_db
>>>
>>> but no matter what we try after restarting apache get the error message=
:
>>>
>>> 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.
>=20
> I did look at trac.log.  It just says the error message above.
> I also said above that pymysql is installed.  I checked with:
>=20
> $ 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
>=20
> without error.
>=20
> I tried the following:
>=20
> trac-admin /srv/trac/lfs convert_db mysql://tracuser:password@localhost/t=
rac_db
>=20
> But got the following:
>=20
> /usr/lib/python3.13/site-packages/trac/__init__.py:14: UserWarning: pkg_r=
esources is=20
> deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resour=
ces.html.=20
> The pkg_resources package is slated for removal as early as 2025-11-30. R=
efrain from=20
> using this package or pin to Setuptools<81.
>=20
>    from pkg_resources import DistributionNotFound, get_distribution
> Error: Unable to check for upgrade of trac.db.api.DatabaseManager: Timeou=
tError:=20
> Unable to get database connection within 10 seconds.

I guess it is failing to connect to the database via TCP. Please check
connecting to the database via TCP connection using mariadb client.

> #database =3D mysql://tracuser:password/trac_db?unix_socket=3D/run/mariad=
b/
>     mariadb.sock

If you want to use unix domain socket, use like the following ("@" characte=
r is
needed after the password):

  mysql://tracuser:password@/trac_db?unix_socket=3D/run/mariadb/mariadb.soc=
k

--=20
Jun Omae <[email protected]> (=E5=A4=A7=E5=89=8D =E6=BD=A4)

--=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/=
bb4103ca-3643-4a27-b845-7ee3c766d879%40gmail.com.