Am 15.11.2017 um 07:18 schrieb Torge Riedel:
Am 14.11.2017 um 09:48 schrieb RjOllos:


On Monday, November 13, 2017 at 10:41:30 PM UTC-8, torgeriedel wrote:

    Am 13.11.2017 um 14:09 schrieb Jun Omae:
    > On Sun, Nov 12, 2017 at 11:41 PM, Torge Riedel <torgerie...@gmx.de 
<mailto:torgerie...@gmx.de>> wrote:
    >> Ok, this switched to a general issue. I followed documentation on
    >> https://trac.edgewall.org/wiki/TracInstall 
<https://trac.edgewall.org/wiki/TracInstall> and then the following call to
    >> initialize a new environment:
    >>
    >> trac-admin /var/www/trac/env2 initenv
    >>
    >> Creating a new Trac environment at /var/www/trac/env2
    >>
    >> Trac will first ask a few questions about your environment
    >> in order to initialize and prepare the project database.
    >>
    >>   Please enter the name of your project.
    >>   This name will be used in page titles and descriptions.
    >>
    >> Project Name [My Project]> Test
    >>
    >>   Please specify the connection string for the database to use.
    >>   By default, a local SQLite database is created in the environment
    >>   directory. It is also possible to use an existing MySQL or
    >>   PostgreSQL database (check the Trac documentation for the exact
    >>   connection string syntax).
    >>
    >> Database connection string [sqlite:db/trac.db]>
    >> mysql://tracuser:MyPwd@localhost:3306/trac
    >>
    >> Creating and Initializing Project
    >> Initenv for '/var/www/trac/env2' failed.
    >> Failed to create environment.
    >> Unsupported database type "mysql"
    >> Traceback (most recent call last):
    >>    File "build/bdist.linux-x86_64/egg/trac/admin/console.py", line 500, 
in
    >> do_initenv
    >>      options=options)
    >>    File "build/bdist.linux-x86_64/egg/trac/core.py", line 136, in 
__call__
    >>      self.__init__(*args, **kwargs)
    >>    File "build/bdist.linux-x86_64/egg/trac/env.py", line 300, in __init__
    >>      self.create(options)
    >>    File "build/bdist.linux-x86_64/egg/trac/env.py", line 592, in create
    >>      DatabaseManager(self).init_db()
    >>    File "build/bdist.linux-x86_64/egg/trac/db/api.py", line 337, in 
init_db
    >>      connector, args = self.get_connector()
    >>    File "build/bdist.linux-x86_64/egg/trac/db/api.py", line 615, in
    >> get_connector
    >>      scheme=scheme))
    >> TracError: Unsupported database type "mysql"
    > Could you please try initenv with logging using --inherit option?
    >
    > $ cat /path/to/inherit.ini
    > [logging]
    > log_type = stderr
    > log_level = DEBUG
    > $ trac-admin /path/to/env initenv --inherit=/path/to/inherit.ini
    > my-project 'mysql://u:p@localhost/t'
    >
    >
    > In Ubuntu 16.04 on docker, I get the following 2 errors:
    >
    > Error 1
    > =======
    > 12:55:21 Trac[loader] DEBUG: Loading plugin "trac.db.mysql" from
    > "/tmp/venv/lib/python2.7/site-packages"
    > 12:55:21 Trac[loader] ERROR: Skipping "trac.db.mysql =
    > trac.db.mysql_backend [mysql]":
    > Traceback (most recent call last):
    >    File "/tmp/venv/local/lib/python2.7/site-packages/trac/loader.py",
    > line 68, in _load_eggs
    >      entry.load(require=True)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 2228, in load
    >      self.require(*args, **kwargs)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 2245, in require
    >      items = working_set.resolve(reqs, env, installer)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 808, in resolve
    >      if not req_extras.markers_pass(req):
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 993, in markers_pass
    >      return not req.marker or any(extra_evals) or req.marker.evaluate()
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
    > line 278, in evaluate
    >      return _evaluate_markers(self._markers, current_environment)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
    > line 203, in _evaluate_markers
    >      lhs_value = _get_env(environment, lhs.value)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
    > line 185, in _get_env
    >      "{0!r} does not exist in evaluation environment.".format(name)
    > UndefinedEnvironmentName: 'extra' does not exist in evaluation 
environment.
    > 12:55:21 Trac[loader] DEBUG: Loading plugin "trac.db.postgres" from
    > "/tmp/venv/lib/python2.7/site-packages"
    > 12:55:21 Trac[loader] ERROR: Skipping "trac.db.postgres =
    > trac.db.postgres_backend [postgresql]":
    > Traceback (most recent call last):
    >    File "/tmp/venv/local/lib/python2.7/site-packages/trac/loader.py",
    > line 68, in _load_eggs
    >      entry.load(require=True)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 2228, in load
    >      self.require(*args, **kwargs)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 2245, in require
    >      items = working_set.resolve(reqs, env, installer)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 808, in resolve
    >      if not req_extras.markers_pass(req):
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/__init__.py",
    > line 993, in markers_pass
    >      return not req.marker or any(extra_evals) or req.marker.evaluate()
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
    > line 278, in evaluate
    >      return _evaluate_markers(self._markers, current_environment)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
    > line 203, in _evaluate_markers
    >      lhs_value = _get_env(environment, lhs.value)
    >    File 
"/tmp/venv/local/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/markers.py",
    > line 185, in _get_env
    >      "{0!r} does not exist in evaluation environment.".format(name)
    > UndefinedEnvironmentName: 'extra' does not exist in evaluation 
environment.
    >
    >
    > Error 2 after setuptools is reinstalled
    > =======
    > 12:57:49 Trac[loader] DEBUG: Loading plugin "trac.db.mysql" from
    > "/tmp/venv/lib/python2.7/site-packages"
    > 12:57:49 Trac[loader] DEBUG: Skipping "trac.db.mysql =
    > trac.db.mysql_backend [mysql]": DistributionNotFound: The
    > 'MySQL-python>=1.2.2; extra == "mysql"' distribution was not found and
    > is required by the application
    > 12:57:49 Trac[loader] DEBUG: Loading plugin "trac.db.postgres" from
    > "/tmp/venv/lib/python2.7/site-packages"
    > 12:57:49 Trac[loader] DEBUG: Skipping "trac.db.postgres =
    > trac.db.postgres_backend [postgresql]": DistributionNotFound: The
    > 'psycopg2>=2.0; extra == "postgresql"' distribution was not found and
    > is required by the application
    >
    >
    Hi Jun,

    I did the test Ryan suggest:

    # python
    Python 2.7.12 (default, Nov 19 2016, 06:48:10)
    [GCC 5.4.0 20160609] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
     >>> from trac.db.mysql_backend import has_mysqldb
     >>> has_mysqldb
    True
     >>> from trac.db.mysql_backend import mysqldb_version
     >>> mysqldb_version
    '1.3.7'
     >>> quit()

    So, to me it looks like trac can detect the MySQLdb package in this newer 
version. Running your test with debug output it prints like on your d-container:

    07:36:16 Trac[loader] DEBUG: Skipping "trac.db.mysql = trac.db.mysql_backend 
[mysql]": DistributionNotFound: The 'MySQL-python>=1.2.2' distribution was not found 
and is required by the application

    So somewhere in trac there is an additional check? I will look in the code 
(although I am not a python dev) and try to find the cause of this failing 
check. If you have any hints, it will be very helpful.

    Thanks

    Torge


Please try the following patch:
diff --git a/setup.py b/setup.py
index 5f6f2d7b1..1c93d9e41 100755
--- a/setup.py
+++ b/setup.py
@@ -97,7 +97,7 @@ setup(
     ],
     extras_require = {
         'babel': ['Babel>=0.9.5'],
-        'mysql': ['MySQL-python >= 1.2.2'],
+        'mysql': ['mysqlclient'],
         'postgresql': ['psycopg2 >= 2.0'],
         'pygments': ['Pygments>=0.6'],
         'rest': ['docutils>=0.3.9'],

All tests are passing for me. We might be able to add mysqlclient as a 
supported database backend in Trac 1.2.3.

- Ryan
--
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 email to 
trac-users+unsubscr...@googlegroups.com 
<mailto:trac-users+unsubscr...@googlegroups.com>.
To post to this group, send email to trac-users@googlegroups.com 
<mailto:trac-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.

Hi Ryan,

many thanks. This patch worked in a way for me, that Trac is now no more 
complaining about unsupported db scheme, it says (on initenv):

(1045, "Access denied for user 'u'@'localhost' (using password: YES)")

Looks good. I will continue this evening with setting up a new env with correct 
credentials and test the migration. I will give feedback here.

If it's possible to add a fix in Trac 1.2.3 to support both versions, I will be 
happy.

Thanks
Torge

--
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 email to 
trac-users+unsubscr...@googlegroups.com 
<mailto:trac-users+unsubscr...@googlegroups.com>.
To post to this group, send email to trac-users@googlegroups.com 
<mailto:trac-users@googlegroups.com>.
Visit this group at https://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.

Ok, I finished my checks and successfully migrated to Trac 1.2.2 with the 
patch. Everything works fine as far as I can see.

Thanks for your support.
Torge

--
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 email 
to trac-users+unsubscr...@googlegroups.com.
To post to this group, send email to trac-users@googlegroups.com.
Visit this group at https://groups.google.com/group/trac-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to