On 12/23/19 4:46 PM, Ed Wong wrote:
Hi,

I'm running Kallithea 0.4.0 and tried to upgrade to 0.5.0; but at the
point of running "alembic -c my_new.ini upgrade", I got the following
error:


2019-12-23 15:42:42.575 INFO  [alembic.runtime.migration] Running
upgrade 151b4a4e8c48 -> 4851d15bc437, db: migration step after
95c01895c006 failed to add usk_public_key_idx in alembic step b74907136bc1

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError)
(1170, "BLOB/TEXT column 'public_key' used in key specification without
a key length") [SQL: u'CREATE INDEX usk_public_key_idx ON user_ssh_keys
(public_key)'] (Background on this error at: http://sqlalche.me/e/e3q8)


Hmm.


One solution could perhaps be to change db.py to something like

_public_key = Column('public_key', Unicode(512), nullable=False)

... but I'm not sure if 512 (or anything else) is reasonable - that depends on how long public keys ever can be, and what the lowest key constraints among databases is these days.


But it seems like we only use the public_key index for deleting ssh keys.

Most likely, it will work just fine without that index. As a quick temporary workaround, I suggest skipping that upgrade step: edit kallithea/alembic/versions/4851d15bc437_db_migration_step_after_95c01895c006_.py and disable the checkings.

It now seems like the right solution would be to change the code to use the fingerprint when deleting keys. I will work on that.


/Mads

_______________________________________________
kallithea-general mailing list
kallithea-general@sfconservancy.org
https://lists.sfconservancy.org/mailman/listinfo/kallithea-general

Reply via email to