Opened 3 years ago

Last modified 3 years ago

#14013 closed defect

environment_needs_upgrade incorrectly returns false after upgrade failure — at Version 1

Reported by: Ryan J Ollos Owned by: Jun Omae
Priority: normal Component: TracDbftsPlugin
Severity: normal Keywords:
Cc: Trac Release:

Description (last modified by Ryan J Ollos)

The dbtfs table was created so now the system does not think the environment needs to be upgraded due to logic in environment_needs_upgrade.

../tracenvs/proj-1.3/db/trac.db> .tables
+------------------------+
| name                   |
+------------------------+
| attachment             |
| auth_cookie            |
| cache                  |
| codereviewer           |
| codereviewer_map       |
| component              |
| component_default_cc   |
| dbfts                  |
$ trac-admin "/Users/rjollos/Documents/Workspace/trac-dev/tracenvs/proj-1.3" upgrade
19:29:17 Trac[loader] ERROR: Skipping "S3AttachmentStorage": ImportError: No module named boto3
19:29:17 Trac[env] WARNING: Component <Component tracdbfts.api.TracDbftsSystem> requires an environment upgrade
19:29:17 Trac[env] WARNING: Component <Component tracdbfts.api.TracDbftsSystem> requires an environment upgrade
19:29:17 Trac[env] ERROR: Component <Component tracdbfts.api.TracDbftsSystem> failed with
Traceback (most recent call last):
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/env.py", line 387, in component_guard
    yield
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/env.py", line 787, in upgrade
    participant.upgrade_environment()
  File "/Users/rjollos/Documents/Workspace/trac-dev/trac-hacks/tracdbftsplugin/trunk/tracdbfts/api.py", line 66, in upgrade_environment
    self._interface.create_schema()
  File "/Users/rjollos/Documents/Workspace/trac-dev/trac-hacks/tracdbftsplugin/trunk/tracdbfts/api.py", line 521, in create_schema
    """)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/util.py", line 74, in execute
    return self.cursor.execute(sql)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/sqlite_backend.py", line 87, in execute
    result = PyFormatCursor.execute(self, *args)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/sqlite_backend.py", line 63, in execute
    args or [])
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/sqlite_backend.py", line 54, in _rollback_on_error
    return function(self, *args, **kwargs)
OperationalError: no such tokenizer: trigram
The upgrade failed. Please fix the issue and try again.

OperationalError: no such tokenizer: trigram
19:29:17 Trac[console] ERROR: Exception in trac-admin command: u'upgrade'
Traceback (most recent call last):
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/admin/console.py", line 83, in onecmd
    rv = cmd.Cmd.onecmd(self, line) or 0
  File "/Users/rjollos/.pyenv/versions/2.7.18/lib/python2.7/cmd.py", line 220, in onecmd
    return self.default(line)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/admin/console.py", line 252, in default
    return self.cmd_mgr.execute_command(*args)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/admin/api.py", line 135, in execute_command
    return f(*fargs)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/env.py", line 1062, in _do_upgrade
    self.env.upgrade(backup=no_backup is None)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/env.py", line 787, in upgrade
    participant.upgrade_environment()
  File "/Users/rjollos/Documents/Workspace/trac-dev/trac-hacks/tracdbftsplugin/trunk/tracdbfts/api.py", line 66, in upgrade_environment
    self._interface.create_schema()
  File "/Users/rjollos/Documents/Workspace/trac-dev/trac-hacks/tracdbftsplugin/trunk/tracdbfts/api.py", line 521, in create_schema
    """)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/util.py", line 74, in execute
    return self.cursor.execute(sql)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/sqlite_backend.py", line 87, in execute
    result = PyFormatCursor.execute(self, *args)
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/sqlite_backend.py", line 63, in execute
    args or [])
  File "/Users/rjollos/Documents/Workspace/trac-dev/teo-rjollos.git/trac/db/sqlite_backend.py", line 54, in _rollback_on_error
    return function(self, *args, **kwargs)
OperationalError: no such tokenizer: trigram

Now search results in an error:

Change History (2)

Changed 3 years ago by Ryan J Ollos

comment:1 Changed 3 years ago by Ryan J Ollos

Description: modified (diff)
Note: See TracTickets for help on using tickets.