Crucible - MySql 5.6 Migration From hsql Constraint Issue (Specified key was too long; max key length is 767 bytes)

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: "create index cru_idx_stored_path on cru_stored_path (cru_path);"

(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

2 answers

0 votes

Hi Brian,

This is a bug that currently being tracked by our developer here: https://jira.atlassian.com/browse/FE-4507

If
this is a new MySQL instance, can you try downgrading to MySQL 5.5?

Cheers,

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?

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Tuesday in Featured Groups

Tuesday tips & tricks: What is the Atlassian Community?

It's officially Tuesday, which means it's officially time for another tip to help you better navigate this space we call the Atlassian Community. 😄 I got a great question from community member, Sa...

152 views 6 8
View post

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you