self.curs.execute(sql) class CreateAppVersionCodeIndex(TableUpdate): def run_up(self): sql = '\n'.join([ "CREATE INDEX app_version_code", " ON crashes (app_version_code)"]) self.curs.execute(sql) def run_down(self): sql = '\n'.join([ "ALTER TABLE %s" % self.parent.name, " DROP INDEX crashes_app_version_code_index"]) self.curs.execute(sql) class AppVersionNameToiVarchar(TableUpdate): def run_up(self): sql = '\n'.join([ "ALTER TABLE %s" % self.parent.name, " CHANGE app_version_name app_version_name VARCHAR(1024) NOT NULL"]) self.curs.execute(sql) def run_down(self): sql = '\n'.join([ "ALTER TABLE %s" % self.parent.name, " CHANGE app_version_name app_version_name TEXT"]) self.curs.execute(sql) if __name__ == "__main__": execute(Crashes, 'crashreports/database.yml')
#!/usr/bin/python # vim:foldmethod=indent from knewton.schema.base import * from knewton.schema.run import execute class FeedbackTypes(TableBase): def __init__(self, conn): TableBase.__init__(self, conn, "feedback_types") CreateFeedbackTypes(self, 1) class CreateFeedbackTypes(TableUpdate): def run_up(self): if not self.table_exists(): sql = '\n'.join([ "CREATE TABLE %s (" % self.parent.name, " id INT(11) NOT NULL AUTO_INCREMENT,", " name VARCHAR(128),", " field_name varchar(128),", " PRIMARY KEY (id)", ") ENGINE=InnoDB AUTO_INCREMENT=14171 DEFAULT CHARSET=utf8" ]) self.curs.execute(sql) def run_down(self): self.drop_table() if __name__ == "__main__": execute(FeedbackTypes, 'crashreports/database.yml')
sql = "ALTER TABLE %s" % self.parent.name sql += " ENGINE Memory" self.curs.execute(sql) def run_down(self): sql = "ALTER TABLE %s" % self.parent.name sql += " ENGINE InnoDB" self.curs.execute(sql) class RevertEngine(ChangeEngine): def run_up(self): ChangeEngine.run_down(self) def run_down(self): ChangeEngine.run_up(self) class AddLastAuthenticationTypeColumn(TableUpdate): def run_up(self): sql = "ALTER TABLE %s ADD COLUMN last_authentication_type VARCHAR(20) AFTER sequence" % self.parent.name self.curs.execute(sql) def run_down(self): sql = "ALTER TABLE %s DROP COLUMN last_authentication_type" % self.parent.name self.curs.execute(sql) if __name__ == "__main__": execute(AuthTokens, 'databases/sessions.yml')
class ChangeEngine(TableUpdate): def run_up(self): sql = "ALTER TABLE %s" % self.parent.name sql += " ENGINE Memory" self.curs.execute(sql) def run_down(self): sql = "ALTER TABLE %s" % self.parent.name sql += " ENGINE InnoDB" self.curs.execute(sql) class RevertEngine(ChangeEngine): def run_up(self): ChangeEngine.run_down(self) def run_down(self): ChangeEngine.run_up(self) class AddLastAuthenticationTypeColumn(TableUpdate): def run_up(self): sql = "ALTER TABLE %s ADD COLUMN last_authentication_type VARCHAR(20) AFTER sequence" % self.parent.name self.curs.execute(sql) def run_down(self): sql = "ALTER TABLE %s DROP COLUMN last_authentication_type" % self.parent.name self.curs.execute(sql) if __name__ == "__main__": execute(AuthTokens, 'databases/sessions.yml')
class Feedback(TableBase): def __init__(self, conn): TableBase.__init__(self, conn, "feedback") CreateFeedback(self, 1) class CreateFeedback(TableUpdate): def run_up(self): if not self.table_exists(): sql = '\n'.join([ "CREATE TABLE %s (" % self.parent.name, " id INT(11) NOT NULL AUTO_INCREMENT,", " feedback_type_id INT(11) NOT NULL,", " crash_id INT(11) NOT NULL,", " status INT(11) NOT NULL,", " PRIMARY KEY (id),", " FOREIGN KEY (feedback_type_id)", " REFERENCES feedback_types(id)", " ON DELETE CASCADE,", " FOREIGN KEY (crash_id)", " REFERENCES crashes(id)", " ON DELETE CASCADE", ") ENGINE=InnoDB AUTO_INCREMENT=14171 DEFAULT CHARSET=utf8"]) self.curs.execute(sql) def run_down(self): self.drop_table() if __name__ == "__main__": execute(Feedback, 'crashreports/database.yml')
from knewton.schema.base import * from knewton.schema.run import execute class CustomData(TableBase): def __init__(self, conn): TableBase.__init__(self, conn, "custom_data") CreateCustomData(self, 1) class CreateCustomData(TableUpdate): def run_up(self): if not self.table_exists(): sql = '\n'.join([ "CREATE TABLE %s (" % self.parent.name, " id INT(11) NOT NULL AUTO_INCREMENT,", " crash_id INT(11) NOT NULL,", " field_name VARCHAR(128) NOT NULL,", " data text,", " PRIMARY KEY (id),", " KEY custom_data_field_name_index (field_name),", " FOREIGN KEY (crash_id)", " REFERENCES crashes(id)", " ON DELETE CASCADE", ") ENGINE=InnoDB AUTO_INCREMENT=14171 DEFAULT CHARSET=utf8"]) self.curs.execute(sql) def run_down(self): self.drop_table() if __name__ == "__main__": execute(CustomData, 'crashreports/database.yml')
"CREATE INDEX app_version_code", " ON crashes (app_version_code)" ]) self.curs.execute(sql) def run_down(self): sql = '\n'.join([ "ALTER TABLE %s" % self.parent.name, " DROP INDEX crashes_app_version_code_index" ]) self.curs.execute(sql) class AppVersionNameToiVarchar(TableUpdate): def run_up(self): sql = '\n'.join([ "ALTER TABLE %s" % self.parent.name, " CHANGE app_version_name app_version_name VARCHAR(1024) NOT NULL" ]) self.curs.execute(sql) def run_down(self): sql = '\n'.join([ "ALTER TABLE %s" % self.parent.name, " CHANGE app_version_name app_version_name TEXT" ]) self.curs.execute(sql) if __name__ == "__main__": execute(Crashes, 'crashreports/database.yml')