2017-02-15 2 views
3

Versuch Airflow für MySQL einzurichten und ich bin immer einen Fehler beim Airflow den Primärschlüssel während einzustellen versucht ‚Luftstrom initdb‘Apache Airflow - mysql 'Angegebener Schlüssel war zu lang; max Schlüssellänge beträgt 1000 Bytes'

File "/usr/lib/pymodules/python2.7/MySQLdb/cursors.py", line 166, in execute 
self.errorhandler(self, exc, value) 
File "/usr/lib/pymodules/python2.7/MySQLdb/connections.py", line 35, in defaulterrorhandler 
raise errorclass, errorvalue 
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1071, 'Specified key was too long; max key length is 1000 bytes') [SQL: u'\nCREATE TABLE sla_miss (\n\ttask_id VARCHAR(250) NOT NULL, \n\tdag_id VARCHAR(250) NOT NULL, \n\texecution_date DATETIME NOT NULL, \n\temail_sent BOOL, \n\ttimestamp DATETIME, \n\tdescription TEXT, \n\tPRIMARY KEY (task_id, dag_id, execution_date), \n\tCHECK (email_sent IN (0, 1))\n)\n\n'] 

Messed um mit dieser für eine Weile und Konnte es nicht gerade zum Laufen bringen.

Ich weiß, dass der Schlüssel für die Datenbank zu lang ist, aber ich hoffe, dass ich auf eine andere Art und Weise versuchen kann, die Datenbank zu erstellen, damit dies funktioniert?

Aus diesem Beispiel http://site.clairvoyantsoft.com/installing-and-configuring-apache-airflow/ Ich versuchte dies:

CREATE DATABASE airflow CHARACTER SET utf8 COLLATE utf8_unicode_ci; 

Aber das verursacht noch die Fehler. Wenn ich den CHARACTER SET auf latin1 ändere, kann er die Datenbank erstellen, aber dann kann keiner der tatsächlichen Luftstromprozesse aufgrund von Decodierungsfehlern ausgeführt werden.

Irgendwelche Ideen?

Antwort

1

Ich denke, ich war in der Lage, dies zur Arbeit zu bringen. Ich habe meine ursprüngliche create Datenbank auf CREATE DATABASE airflow CHARACTER SET ascii geändert und meine Engine aktualisiert, um/airflow? Charset = ascii zu haben. Scheint wie es jetzt funktioniert (was erstaunlich ist)

Verwandte Themen