diff --git a/data/scripts/courses_importer.py b/data/scripts/courses_importer.py new file mode 100644 index 0000000..c752605 --- /dev/null +++ b/data/scripts/courses_importer.py @@ -0,0 +1,39 @@ +from importer import Importer +import json + +class Courses(Importer): + + def __init__(self, dump_file): + self.table_name = "courses_t" + self.dump_file = dump_file + self.schema = [ + ("Course", "varchar(32) primary key"), + ("CourseFull", "varchar(32)"), + ("PrefixName", "varchar(32)"), + ("DivisionCode", "varchar(32)"), + ("DivisionName", "varchar(64)"), + ("SchoolCode", "varchar(32)"), + ("SchoolName", "varchar(64)"), + ("DepartmentCode", "varchar(32)"), + ("DepartmentName", "varchar(64)"), + ("SubtermCode", "varchar(32)"), + ("SubtermName", "varchar(64)"), + ("EnrollmentStatus", "varchar(32)"), + ("NumFixedUnits", "int"), + ("MinUnits", "int"), + ("MaxUnits", "int"), + ("CourseTitle", "varchar(64)"), + ("CourseSubtitle", "varchar(64)"), + ("Approval", "varchar(32)"), + ("BulletinFlags", "varchar(32)"), + ("ClassNotes", "varchar(64)"), + ("PrefixLongname", "varchar(32)"), + ("Description", "text") + ] + + def import_data(self): + query = create_query(self) + send_query(query) + + def create_query(self): + return 0 diff --git a/data/scripts/importer.py b/data/scripts/importer.py index dad43e0..adeefe8 100644 --- a/data/scripts/importer.py +++ b/data/scripts/importer.py @@ -11,7 +11,7 @@ class Importer(object): def __init__(self, schema): self.table_name = None - self.schema = schema + self.schema = None self._init_pg() def _init_pg(self): @@ -27,9 +27,9 @@ def _init_pg(self): def create_table(self): assert len(self.schema) > 0, "Schema is not defined." - print "Creating table `%s` with schema." $ self.table_name + print "Creating table `%s` with schema." % self.table_name cursor = self.conn.cursor() - db_query = 'CREATE TABLE IF NOT EXISTS housing_t (%s);' % (", ".join( + db_query = 'CREATE TABLE IF NOT EXISTS %s (%s);' % (self.table_name, ", ".join( ['%s %s' % column for column in schema])) cursor.execute(db_query) self.conn.commit() @@ -38,3 +38,8 @@ def drop_table(): print "Dropping table `%s`." % self.table_name self.cursor.execute("DROP TABLE %s;", self.table_name) self.conn.commit() + + def send_query(query): + return 0 + + def diff --git a/data/scripts/master_importer.py b/data/scripts/master_importer.py new file mode 100644 index 0000000..16f2686 --- /dev/null +++ b/data/scripts/master_importer.py @@ -0,0 +1,31 @@ +from courses_importer import Courses +import argparse + + +def main(): + parser = argparse.ArgumentParser(description="""Reads a dump file and imports + it to specified table""") + parser.add_argument('table_name', help="""Table name - e.g. courses, housing, + housing_amenities""") + parser.add_argument('--create', action='store_true', help="""create the + courses_v2_t table if it doesn't already exist""") + parser.add_argument('--drop', action='store_true', help="""drop the + courses_v2_t table""") + parser.add_argument('dump_file', help="""Name of dump file""") + + args = parser.parse_args() + # create object for corresponding table based on args + if (args.table_name == "courses"): + table_object = Courses(args.dump_file) + elif (args.table_name =="housing"): + table_object == Housing(args.dump_file) + + if (args.create): + table_object.create_table() + elif(args.drop): + table_object.create_table() + else: + table_object.import_data() + +if __name__ == "__main__": + main()