def make_test_instance(db_settings): if not db_settings.filename: Log.note("Database schema will not be touched") return with Timer("Make database instance"): try: #CLEAR SCHEMA Log.note("Make empty {{schema}} schema", {"schema":db_settings.schema}) no_schema=db_settings.copy() no_schema.schema = None with DB(no_schema) as db: db.execute("DROP DATABASE IF EXISTS {{schema}}", {"schema":db.quote_column(db_settings.schema)}) db.execute("CREATE DATABASE {{schema}}", {"schema":db.quote_column(db_settings.schema)}) #FILL SCHEMA Log.note("Fill {{schema}} schema with data", {"schema":db_settings.schema}) DB.execute_file(db_settings, db_settings.filename) #ADD MISSING TABLES with DB(db_settings) as db: db.execute(""" CREATE TABLE `longdescs_tags` ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `comment_id` int(11) DEFAULT NULL, `tag` varchar(24) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `longdescs_tags_idx` (`comment_id`,`tag`), CONSTRAINT `fk_longdescs_tags_comment_id_longdescs_comment_id` FOREIGN KEY (`comment_id`) REFERENCES `longdescs` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE ) DEFAULT CHARSET=utf8""") except Exception, e: Log.error("Can not setup test database", e)
def main(): """ MEANT TO BE RUN JUST ONCE IN DEVELOPMENT TO CONVERT A BIG PUBLIC DATABASE (8G+) INTO A TINY TESTING DB (FOR ADDING TO REPOSITORY) """ try: settings=startup.read_settings() Log.start(settings.debug) input=raw_input("We are going to totally wipe out the "+settings.bugzilla.schema.upper()+" schema at "+settings.bugzilla.host.upper()+"! Type \"YES\" to continue: ") if input!="YES": Log.note("Aborted. No Changes made.") return Log.note("Scrubbing db of those pesky records.") Log.note("This is going to take hours ...") DB.execute_file(settings.bugzilla, "./tests/resources/sql/scrub_db.sql", { "schema":settings.bugzilla.schema, "bug_list":SQL(settings.param.bugs) }) Log.note("... Done!") finally: Log.stop()
def make_test_instance(db_settings): if not db_settings.filename: Log.note("Database schema will not be touched") return with Timer("Make database instance"): try: #CLEAR SCHEMA Log.note("Make empty {{schema}} schema", {"schema": db_settings.schema}) no_schema = db_settings.copy() no_schema.schema = None with DB(no_schema) as db: db.execute("DROP DATABASE IF EXISTS {{schema}}", {"schema": db.quote_column(db_settings.schema)}) db.execute("CREATE DATABASE {{schema}}", {"schema": db.quote_column(db_settings.schema)}) #FILL SCHEMA Log.note("Fill {{schema}} schema with data", {"schema": db_settings.schema}) DB.execute_file(db_settings, db_settings.filename) #ADD MISSING TABLES with DB(db_settings) as db: db.execute(""" CREATE TABLE `longdescs_tags` ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `comment_id` int(11) DEFAULT NULL, `tag` varchar(24) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `longdescs_tags_idx` (`comment_id`,`tag`), CONSTRAINT `fk_longdescs_tags_comment_id_longdescs_comment_id` FOREIGN KEY (`comment_id`) REFERENCES `longdescs` (`comment_id`) ON DELETE CASCADE ON UPDATE CASCADE ) DEFAULT CHARSET=utf8""") except Exception, e: Log.error("Can not setup test database", e)