Upgrade fails 'java.sql.SQLException Table confluence.BANDANA doesn't exist' due to case sensitivity
問題
Upgrade fails. The following appears in the atlassian-confluence.log
:
2007-11-27 04:59:01,724 ERROR [main] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Table 'confluence.BANDANA' doesn't exist
2007-11-27 04:59:01,724 ERROR [main] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Table 'confluence.BANDANA' doesn't exist
2007-11-27 04:59:01,728 ERROR [main] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Table 'confluence.BANDANA' doesn't exist
2007-11-27 04:59:01,728 ERROR [main] [sf.hibernate.util.JDBCExceptionReporter] logExceptions Table 'confluence.BANDANA' doesn't exist
When checking the database, the table bandana does exist! The connection details to the database (which can be found in the confluence.cfg.xml
file) are also correct.
診断
Using your database tools, determine if the table exists, and if it matches the missing table from the error report.
- If the table names do not match (
bandana
in the database, andBANDANA
in the error message) then you're seeing a case sensitivity issue - If the table names do match, but you're still seeing this error, the table may not be owned by the correct schema.
原因 1
When upgrading to a version prior to 2.7.2, a bug in Confluence may cause the BANDANA
table to not be created. See for more details - CONF-9959Getting issue details... STATUS
ソリューション 1
Upgrade to Confluence 2.7.2 or higher.
原因 2
The database collation (which controls case sensitivity) is incorrect; and must be adjusted. Typically, this is often seen in Microsoft SQL Server and MySQL databases.
ソリューション 2
- MySQL: See the Database Setup For MySQL, and our guide on repairing the collation and character set of a MySQL Database
- Microsoft SQL Server: See the Database Setup for SQL Server, and our guide on fixing the collation and character set of a Microsoft SQL Server Database
原因 3
The tables exist in the database, but belong to a different schema. The credentials being used by Confluence to not have access to that schema. Consider the following example in Microsoft SQL Server:
If the database object is dbo.BANDANA
, and jsmith
is not a member of the db_owner
role; jsmith
will be unable to access dbo.BANDANA
because he does not have access to the dbo
schema.
ソリューション 3
You must ensure that your Database is configured correctly; specifically with regard to your user permissions. Test your setup by connecting to the database as the same user, and running the offending queries to ensure the user is setup correctly.
Still having problems?
Contact Atlassian Support. We'll be happy to advise you. Please include as much detail as possible, where applicable:
- Logs from the affected application (if applicable)
- Screenshots of the error message (if they're not covered in logs)
- Information about the steps you've taken previously