rackerlabs/qonos — pull request #280 by jerdfelt (2014-02-07 22:45:30+00:00)
Title: Ensure all tables are created with utf8 character set

COMMON_TABLE_ARGS is intended to be used on all tables, but the schedules and jobs table override __table_args__ and don't include COMMON_TABLE_ARGS. This leaves the character set to be the default for the database. If the default is not utf8, you will see a problem similar to this when creating schedules_metadata where the character sets of the foreign key constraints don't match:

2014-02-07 22:31:54 CRITICAL [qonos] (OperationalError) (1005, "Can't create table 'qonos.job_metadata' (errno: 150)") '\nCREATE TABLE job_metadata (\n\tcreated_at DATETIME NOT NULL, \n\tupdated_at DATETIME NOT NULL, \n\tid VARCHAR(36) NOT NULL, \n\tjob_id VARCHAR(36) NOT NULL, \n\t`key` VARCHAR(255) NOT NULL, \n\tvalue TEXT NOT NULL, \n\tPRIMARY KEY (id), \n\tUNIQUE (job_id, `key`), \n\tFOREIGN KEY(job_id) REFERENCES jobs (id)\n)ENGINE=InnoDB CHARSET=utf8\n\n' ()