Crucible - MySql 5.6 Migration From hsql Constraint Issue (Specified key was too long; max key length is 767 bytes)
Asked by Brian Van Grunsven:

When migrating from hsql to MySql 5.6 (pretty much fresh installation) I am getting an error which does not allow completion of migration. An exception is thrown when a constraint is applied to the following table:

create table cru_stored_path (cru_path_id integer not null, cru_path varchar(1000), primary key (cru_path_id)) ENGINE=InnoDB;

constraint:

create index cru_idx_stored_path on cru_stored_path (cru_path);

with stack trace:

2013-02-13 15:57:42,152 ERROR ThreadPool4 fisheye DBEditHelper-doGet - Database migration failed: com.cenqua.crucible.hibernate.CruDBException: Problem with constraints script C: fecru fecru-2.10.1 sql MYSQL schema constraints_80.sql

com.cenqua.crucible.hibernate.CruDBException: Problem with constraints script C: fecru fecru-2.10.1 sql MYSQL schema constraints_80.sql

at com.cenqua.crucible.hibernate.DefaultDBControl.addConstraints(DefaultDBControl.java:344)

at com.atlassian.crucible.migration.item.DBImporter.importData(DBImporter.java:145)

at com.atlassian.crucible.actions.admin.database.DBEditHelper$ImportRunner.call(DBEditHelper.java:90)

at com.atlassian.crucible.actions.admin.database.DBEditHelper$ImportRunner.call(DBEditHelper.java:72)

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

at java.util.concurrent.FutureTask.run(FutureTask.java:166)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:722)

Caused by: com.cenqua.crucible.hibernate.CruDBException: SQL script error on line 124: \&amp;quot;create index cru_idx_stored_path on cru_stored_path (cru_path);\&amp;quot;

(Specified key was too long; max key length is 767 bytes), please contact <http://www.atlassian.com/support/>

at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:510)

at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:441)

at com.cenqua.crucible.hibernate.DefaultDBControl.addConstraints(DefaultDBControl.java:338)

... 10 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:525)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)

at com.mysql.jdbc.Util.getInstance(Util.java:386)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2788)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1816)

at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1730)

at com.cenqua.crucible.hibernate.DefaultDBControl.executeScript(DefaultDBControl.java:482)

... 12 more


Answers:
author: John Conde
body: I'm having the same problem.

If the problem is just in the migration script, is there a way to tell FishEye to throw away the current DB and start again with MySQL?

Or is Fisheye/Crucible just unable to play with MySQL 5.6 at all (for now)?

--- Answering my own question: No it's not just a migrate bug. As far as I can tell the current build of FishEye can not be made to work with the current build of MySql (5.6). Isn't that something you should tell customers up front? Like in big red flashy letters on the download page?


author: vkharisma
body: Hi Brian,

This is a bug that currently being tracked by our developer here: [https://jira.atlassian.com/browse/FE-4507
If](https://jira.atlassian.com/browse/FE-4507%3Cbr%3E%3Cbr%3EIf) this is a new MySQL instance, can you try downgrading to MySQL 5.5?

Cheers,


Tags: constraint

hsql

index

migration

mysql