From a86d56ccbaca1c87d22bad65d396db9f45873bb2 Mon Sep 17 00:00:00 2001 From: Will Daly Date: Sat, 25 Jan 2014 10:42:56 -0500 Subject: [PATCH] Cache databases to speed up acceptance tests --- common/test/db_cache/bok_choy_data.json | 1 + common/test/db_cache/bok_choy_schema.sql | 1568 ++++++++++++++++++++++ common/test/db_cache/lettuce.db | Bin 0 -> 389120 bytes rakelib/acceptance_test.rake | 26 +- rakelib/bok_choy.rake | 13 +- scripts/reset-test-db.sh | 54 + 6 files changed, 1648 insertions(+), 14 deletions(-) create mode 100644 common/test/db_cache/bok_choy_data.json create mode 100644 common/test/db_cache/bok_choy_schema.sql create mode 100644 common/test/db_cache/lettuce.db create mode 100755 scripts/reset-test-db.sh diff --git a/common/test/db_cache/bok_choy_data.json b/common/test/db_cache/bok_choy_data.json new file mode 100644 index 0000000000..c485e0decd --- /dev/null +++ b/common/test/db_cache/bok_choy_data.json @@ -0,0 +1 @@ +[{"pk": 30, "model": "contenttypes.contenttype", "fields": {"model": "anonymoususerid", "name": "anonymous user id", "app_label": "student"}}, {"pk": 50, "model": "contenttypes.contenttype", "fields": {"model": "article", "name": "article", "app_label": "wiki"}}, {"pk": 51, "model": "contenttypes.contenttype", "fields": {"model": "articleforobject", "name": "Article for object", "app_label": "wiki"}}, {"pk": 54, "model": "contenttypes.contenttype", "fields": {"model": "articleplugin", "name": "article plugin", "app_label": "wiki"}}, {"pk": 52, "model": "contenttypes.contenttype", "fields": {"model": "articlerevision", "name": "article revision", "app_label": "wiki"}}, {"pk": 59, "model": "contenttypes.contenttype", "fields": {"model": "articlesubscription", "name": "article subscription", "app_label": "wiki"}}, {"pk": 20, "model": "contenttypes.contenttype", "fields": {"model": "association", "name": "association", "app_label": "django_openid_auth"}}, {"pk": 78, "model": "contenttypes.contenttype", "fields": {"model": "certificateitem", "name": "certificate item", "app_label": "shoppingcart"}}, {"pk": 40, "model": "contenttypes.contenttype", "fields": {"model": "certificatewhitelist", "name": "certificate whitelist", "app_label": "certificates"}}, {"pk": 4, "model": "contenttypes.contenttype", "fields": {"model": "contenttype", "name": "content type", "app_label": "contenttypes"}}, {"pk": 48, "model": "contenttypes.contenttype", "fields": {"model": "courseauthorization", "name": "course authorization", "app_label": "bulk_email"}}, {"pk": 45, "model": "contenttypes.contenttype", "fields": {"model": "courseemail", "name": "course email", "app_label": "bulk_email"}}, {"pk": 47, "model": "contenttypes.contenttype", "fields": {"model": "courseemailtemplate", "name": "course email template", "app_label": "bulk_email"}}, {"pk": 37, "model": "contenttypes.contenttype", "fields": {"model": "courseenrollment", "name": "course enrollment", "app_label": "student"}}, {"pk": 38, "model": "contenttypes.contenttype", "fields": {"model": "courseenrollmentallowed", "name": "course enrollment allowed", "app_label": "student"}}, {"pk": 71, "model": "contenttypes.contenttype", "fields": {"model": "coursemode", "name": "course mode", "app_label": "course_modes"}}, {"pk": 43, "model": "contenttypes.contenttype", "fields": {"model": "coursesoftware", "name": "course software", "app_label": "licenses"}}, {"pk": 18, "model": "contenttypes.contenttype", "fields": {"model": "courseusergroup", "name": "course user group", "app_label": "course_groups"}}, {"pk": 10, "model": "contenttypes.contenttype", "fields": {"model": "crontabschedule", "name": "crontab", "app_label": "djcelery"}}, {"pk": 49, "model": "contenttypes.contenttype", "fields": {"model": "externalauthmap", "name": "external auth map", "app_label": "external_auth"}}, {"pk": 66, "model": "contenttypes.contenttype", "fields": {"model": "flag", "name": "flag", "app_label": "waffle"}}, {"pk": 41, "model": "contenttypes.contenttype", "fields": {"model": "generatedcertificate", "name": "generated certificate", "app_label": "certificates"}}, {"pk": 2, "model": "contenttypes.contenttype", "fields": {"model": "group", "name": "group", "app_label": "auth"}}, {"pk": 42, "model": "contenttypes.contenttype", "fields": {"model": "instructortask", "name": "instructor task", "app_label": "instructor_task"}}, {"pk": 9, "model": "contenttypes.contenttype", "fields": {"model": "intervalschedule", "name": "interval", "app_label": "djcelery"}}, {"pk": 73, "model": "contenttypes.contenttype", "fields": {"model": "linkedin", "name": "linked in", "app_label": "linkedin"}}, {"pk": 22, "model": "contenttypes.contenttype", "fields": {"model": "logentry", "name": "log entry", "app_label": "admin"}}, {"pk": 15, "model": "contenttypes.contenttype", "fields": {"model": "migrationhistory", "name": "migration history", "app_label": "south"}}, {"pk": 19, "model": "contenttypes.contenttype", "fields": {"model": "nonce", "name": "nonce", "app_label": "django_openid_auth"}}, {"pk": 69, "model": "contenttypes.contenttype", "fields": {"model": "note", "name": "note", "app_label": "notes"}}, {"pk": 63, "model": "contenttypes.contenttype", "fields": {"model": "notification", "name": "notification", "app_label": "django_notify"}}, {"pk": 28, "model": "contenttypes.contenttype", "fields": {"model": "offlinecomputedgrade", "name": "offline computed grade", "app_label": "courseware"}}, {"pk": 29, "model": "contenttypes.contenttype", "fields": {"model": "offlinecomputedgradelog", "name": "offline computed grade log", "app_label": "courseware"}}, {"pk": 46, "model": "contenttypes.contenttype", "fields": {"model": "optout", "name": "optout", "app_label": "bulk_email"}}, {"pk": 74, "model": "contenttypes.contenttype", "fields": {"model": "order", "name": "order", "app_label": "shoppingcart"}}, {"pk": 75, "model": "contenttypes.contenttype", "fields": {"model": "orderitem", "name": "order item", "app_label": "shoppingcart"}}, {"pk": 76, "model": "contenttypes.contenttype", "fields": {"model": "paidcourseregistration", "name": "paid course registration", "app_label": "shoppingcart"}}, {"pk": 77, "model": "contenttypes.contenttype", "fields": {"model": "paidcourseregistrationannotation", "name": "paid course registration annotation", "app_label": "shoppingcart"}}, {"pk": 36, "model": "contenttypes.contenttype", "fields": {"model": "pendingemailchange", "name": "pending email change", "app_label": "student"}}, {"pk": 35, "model": "contenttypes.contenttype", "fields": {"model": "pendingnamechange", "name": "pending name change", "app_label": "student"}}, {"pk": 12, "model": "contenttypes.contenttype", "fields": {"model": "periodictask", "name": "periodic task", "app_label": "djcelery"}}, {"pk": 11, "model": "contenttypes.contenttype", "fields": {"model": "periodictasks", "name": "periodic tasks", "app_label": "djcelery"}}, {"pk": 1, "model": "contenttypes.contenttype", "fields": {"model": "permission", "name": "permission", "app_label": "auth"}}, {"pk": 17, "model": "contenttypes.contenttype", "fields": {"model": "psychometricdata", "name": "psychometric data", "app_label": "psychometrics"}}, {"pk": 65, "model": "contenttypes.contenttype", "fields": {"model": "puzzlecomplete", "name": "puzzle complete", "app_label": "foldit"}}, {"pk": 34, "model": "contenttypes.contenttype", "fields": {"model": "registration", "name": "registration", "app_label": "student"}}, {"pk": 55, "model": "contenttypes.contenttype", "fields": {"model": "reusableplugin", "name": "reusable plugin", "app_label": "wiki"}}, {"pk": 57, "model": "contenttypes.contenttype", "fields": {"model": "revisionplugin", "name": "revision plugin", "app_label": "wiki"}}, {"pk": 58, "model": "contenttypes.contenttype", "fields": {"model": "revisionpluginrevision", "name": "revision plugin revision", "app_label": "wiki"}}, {"pk": 68, "model": "contenttypes.contenttype", "fields": {"model": "sample", "name": "sample", "app_label": "waffle"}}, {"pk": 8, "model": "contenttypes.contenttype", "fields": {"model": "tasksetmeta", "name": "saved group result", "app_label": "djcelery"}}, {"pk": 64, "model": "contenttypes.contenttype", "fields": {"model": "score", "name": "score", "app_label": "foldit"}}, {"pk": 16, "model": "contenttypes.contenttype", "fields": {"model": "servercircuit", "name": "server circuit", "app_label": "circuit"}}, {"pk": 5, "model": "contenttypes.contenttype", "fields": {"model": "session", "name": "session", "app_label": "sessions"}}, {"pk": 61, "model": "contenttypes.contenttype", "fields": {"model": "settings", "name": "settings", "app_label": "django_notify"}}, {"pk": 56, "model": "contenttypes.contenttype", "fields": {"model": "simpleplugin", "name": "simple plugin", "app_label": "wiki"}}, {"pk": 6, "model": "contenttypes.contenttype", "fields": {"model": "site", "name": "site", "app_label": "sites"}}, {"pk": 72, "model": "contenttypes.contenttype", "fields": {"model": "softwaresecurephotoverification", "name": "software secure photo verification", "app_label": "verify_student"}}, {"pk": 23, "model": "contenttypes.contenttype", "fields": {"model": "studentmodule", "name": "student module", "app_label": "courseware"}}, {"pk": 24, "model": "contenttypes.contenttype", "fields": {"model": "studentmodulehistory", "name": "student module history", "app_label": "courseware"}}, {"pk": 62, "model": "contenttypes.contenttype", "fields": {"model": "subscription", "name": "subscription", "app_label": "django_notify"}}, {"pk": 67, "model": "contenttypes.contenttype", "fields": {"model": "switch", "name": "switch", "app_label": "waffle"}}, {"pk": 14, "model": "contenttypes.contenttype", "fields": {"model": "taskstate", "name": "task", "app_label": "djcelery"}}, {"pk": 7, "model": "contenttypes.contenttype", "fields": {"model": "taskmeta", "name": "task state", "app_label": "djcelery"}}, {"pk": 39, "model": "contenttypes.contenttype", "fields": {"model": "trackinglog", "name": "tracking log", "app_label": "track"}}, {"pk": 60, "model": "contenttypes.contenttype", "fields": {"model": "notificationtype", "name": "type", "app_label": "django_notify"}}, {"pk": 53, "model": "contenttypes.contenttype", "fields": {"model": "urlpath", "name": "URL path", "app_label": "wiki"}}, {"pk": 3, "model": "contenttypes.contenttype", "fields": {"model": "user", "name": "user", "app_label": "auth"}}, {"pk": 44, "model": "contenttypes.contenttype", "fields": {"model": "userlicense", "name": "user license", "app_label": "licenses"}}, {"pk": 21, "model": "contenttypes.contenttype", "fields": {"model": "useropenid", "name": "user open id", "app_label": "django_openid_auth"}}, {"pk": 70, "model": "contenttypes.contenttype", "fields": {"model": "userpreference", "name": "user preference", "app_label": "user_api"}}, {"pk": 32, "model": "contenttypes.contenttype", "fields": {"model": "userprofile", "name": "user profile", "app_label": "student"}}, {"pk": 31, "model": "contenttypes.contenttype", "fields": {"model": "userstanding", "name": "user standing", "app_label": "student"}}, {"pk": 33, "model": "contenttypes.contenttype", "fields": {"model": "usertestgroup", "name": "user test group", "app_label": "student"}}, {"pk": 13, "model": "contenttypes.contenttype", "fields": {"model": "workerstate", "name": "worker", "app_label": "djcelery"}}, {"pk": 27, "model": "contenttypes.contenttype", "fields": {"model": "xmodulestudentinfofield", "name": "x module student info field", "app_label": "courseware"}}, {"pk": 26, "model": "contenttypes.contenttype", "fields": {"model": "xmodulestudentprefsfield", "name": "x module student prefs field", "app_label": "courseware"}}, {"pk": 25, "model": "contenttypes.contenttype", "fields": {"model": "xmoduleuserstatesummaryfield", "name": "x module user state summary field", "app_label": "courseware"}}, {"pk": 1, "model": "sites.site", "fields": {"domain": "example.com", "name": "example.com"}}, {"pk": 1, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0001_initial"}}, {"pk": 2, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0002_add_indexes"}}, {"pk": 3, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0003_done_grade_cache"}}, {"pk": 4, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:32Z", "app_name": "courseware", "migration": "0004_add_field_studentmodule_course_id"}}, {"pk": 5, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0005_auto__add_offlinecomputedgrade__add_unique_offlinecomputedgrade_user_c"}}, {"pk": 6, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0006_create_student_module_history"}}, {"pk": 7, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0007_allow_null_version_in_history"}}, {"pk": 8, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0008_add_xmodule_storage"}}, {"pk": 9, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0009_add_field_default"}}, {"pk": 10, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "courseware", "migration": "0010_rename_xblock_field_content_to_user_state_summary"}}, {"pk": 11, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "student", "migration": "0001_initial"}}, {"pk": 12, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "student", "migration": "0002_text_to_varchar_and_indexes"}}, {"pk": 13, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:33Z", "app_name": "student", "migration": "0003_auto__add_usertestgroup"}}, {"pk": 14, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0004_add_email_index"}}, {"pk": 15, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0005_name_change"}}, {"pk": 16, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0006_expand_meta_field"}}, {"pk": 17, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0007_convert_to_utf8"}}, {"pk": 18, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0008__auto__add_courseregistration"}}, {"pk": 19, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0009_auto__del_courseregistration__add_courseenrollment"}}, {"pk": 20, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0010_auto__chg_field_courseenrollment_course_id"}}, {"pk": 21, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0011_auto__chg_field_courseenrollment_user__del_unique_courseenrollment_use"}}, {"pk": 22, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0012_auto__add_field_userprofile_gender__add_field_userprofile_date_of_birt"}}, {"pk": 23, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0013_auto__chg_field_userprofile_meta"}}, {"pk": 24, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0014_auto__del_courseenrollment"}}, {"pk": 25, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0015_auto__add_courseenrollment__add_unique_courseenrollment_user_course_id"}}, {"pk": 26, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0016_auto__add_field_courseenrollment_date__chg_field_userprofile_country"}}, {"pk": 27, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0017_rename_date_to_created"}}, {"pk": 28, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0018_auto"}}, {"pk": 29, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0019_create_approved_demographic_fields_fall_2012"}}, {"pk": 30, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:34Z", "app_name": "student", "migration": "0020_add_test_center_user"}}, {"pk": 31, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0021_remove_askbot"}}, {"pk": 32, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0022_auto__add_courseenrollmentallowed__add_unique_courseenrollmentallowed_"}}, {"pk": 33, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0023_add_test_center_registration"}}, {"pk": 34, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0024_add_allow_certificate"}}, {"pk": 35, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0025_auto__add_field_courseenrollmentallowed_auto_enroll"}}, {"pk": 36, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0026_auto__remove_index_student_testcenterregistration_accommodation_request"}}, {"pk": 37, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0027_add_active_flag_and_mode_to_courseware_enrollment"}}, {"pk": 38, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0028_auto__add_userstanding"}}, {"pk": 39, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0029_add_lookup_table_between_user_and_anonymous_student_id"}}, {"pk": 40, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0029_remove_pearson"}}, {"pk": 41, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0030_auto__chg_field_anonymoususerid_anonymous_user_id"}}, {"pk": 42, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "student", "migration": "0031_drop_student_anonymoususerid_temp_archive"}}, {"pk": 43, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:35Z", "app_name": "track", "migration": "0001_initial"}}, {"pk": 44, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "track", "migration": "0002_auto__add_field_trackinglog_host__chg_field_trackinglog_event_type__ch"}}, {"pk": 45, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0001_added_generatedcertificates"}}, {"pk": 46, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0002_auto__add_field_generatedcertificate_download_url"}}, {"pk": 47, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0003_auto__add_field_generatedcertificate_enabled"}}, {"pk": 48, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0004_auto__add_field_generatedcertificate_graded_certificate_id__add_field_"}}, {"pk": 49, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0005_auto__add_field_generatedcertificate_name"}}, {"pk": 50, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0006_auto__chg_field_generatedcertificate_certificate_id"}}, {"pk": 51, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0007_auto__add_revokedcertificate"}}, {"pk": 52, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0008_auto__del_revokedcertificate__del_field_generatedcertificate_name__add"}}, {"pk": 53, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0009_auto__del_field_generatedcertificate_graded_download_url__del_field_ge"}}, {"pk": 54, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0010_auto__del_field_generatedcertificate_enabled__add_field_generatedcerti"}}, {"pk": 55, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0011_auto__del_field_generatedcertificate_certificate_id__add_field_generat"}}, {"pk": 56, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0012_auto__add_field_generatedcertificate_name__add_field_generatedcertific"}}, {"pk": 57, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0013_auto__add_field_generatedcertificate_error_reason"}}, {"pk": 58, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0014_adding_whitelist"}}, {"pk": 59, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:36Z", "app_name": "certificates", "migration": "0015_adding_mode_for_verified_certs"}}, {"pk": 60, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "instructor_task", "migration": "0001_initial"}}, {"pk": 61, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "instructor_task", "migration": "0002_add_subtask_field"}}, {"pk": 62, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "licenses", "migration": "0001_initial"}}, {"pk": 63, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0001_initial"}}, {"pk": 64, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0002_change_field_names"}}, {"pk": 65, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0003_add_optout_user"}}, {"pk": 66, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0004_migrate_optout_user"}}, {"pk": 67, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0005_remove_optout_email"}}, {"pk": 68, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0006_add_course_email_template"}}, {"pk": 69, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0007_load_course_email_template"}}, {"pk": 70, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:37Z", "app_name": "bulk_email", "migration": "0008_add_course_authorizations"}}, {"pk": 71, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "external_auth", "migration": "0001_initial"}}, {"pk": 72, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0001_initial"}}, {"pk": 73, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0002_auto__add_field_articleplugin_created"}}, {"pk": 74, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0003_auto__add_field_urlpath_article"}}, {"pk": 75, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0004_populate_urlpath__article"}}, {"pk": 76, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:38Z", "app_name": "wiki", "migration": "0005_auto__chg_field_urlpath_article"}}, {"pk": 77, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0006_auto__add_attachmentrevision__add_image__add_attachment"}}, {"pk": 78, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0007_auto__add_articlesubscription"}}, {"pk": 79, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0008_auto__add_simpleplugin__add_revisionpluginrevision__add_imagerevision_"}}, {"pk": 80, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0009_auto__add_field_imagerevision_width__add_field_imagerevision_height"}}, {"pk": 81, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0010_auto__chg_field_imagerevision_image"}}, {"pk": 82, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "wiki", "migration": "0011_auto__chg_field_imagerevision_width__chg_field_imagerevision_height"}}, {"pk": 83, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "django_notify", "migration": "0001_initial"}}, {"pk": 84, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:39Z", "app_name": "notifications", "migration": "0001_initial"}}, {"pk": 85, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "foldit", "migration": "0001_initial"}}, {"pk": 86, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0001_initial"}}, {"pk": 87, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0002_auto__add_sample"}}, {"pk": 88, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0003_auto__add_field_flag_note__add_field_switch_note__add_field_sample_not"}}, {"pk": 89, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0004_auto__add_field_flag_testing"}}, {"pk": 90, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0005_auto__add_field_flag_created__add_field_flag_modified"}}, {"pk": 91, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0006_auto__add_field_switch_created__add_field_switch_modified__add_field_s"}}, {"pk": 92, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0007_auto__chg_field_flag_created__chg_field_flag_modified__chg_field_switc"}}, {"pk": 93, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:40Z", "app_name": "waffle", "migration": "0008_auto__add_field_flag_languages"}}, {"pk": 94, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "django_comment_client", "migration": "0001_initial"}}, {"pk": 95, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "django_comment_common", "migration": "0001_initial"}}, {"pk": 96, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "notes", "migration": "0001_initial"}}, {"pk": 97, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:41Z", "app_name": "user_api", "migration": "0001_initial"}}, {"pk": 98, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0001_initial"}}, {"pk": 99, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0002_auto__add_field_coursemode_currency"}}, {"pk": 100, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0003_auto__add_unique_coursemode_course_id_currency_mode_slug"}}, {"pk": 101, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0004_auto__add_field_coursemode_expiration_date"}}, {"pk": 102, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0005_auto__add_field_coursemode_expiration_datetime"}}, {"pk": 103, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "course_modes", "migration": "0006_expiration_date_to_datetime"}}, {"pk": 104, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "verify_student", "migration": "0001_initial"}}, {"pk": 105, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "linkedin", "migration": "0001_initial"}}, {"pk": 106, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "django_extensions", "migration": "0001_empty"}}, {"pk": 107, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:42Z", "app_name": "shoppingcart", "migration": "0001_initial"}}, {"pk": 108, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0002_auto__add_field_paidcourseregistration_mode"}}, {"pk": 109, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0003_auto__del_field_orderitem_line_cost"}}, {"pk": 110, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0004_auto__add_field_orderitem_fulfilled_time"}}, {"pk": 111, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0005_auto__add_paidcourseregistrationannotation__add_field_orderitem_report"}}, {"pk": 112, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0006_auto__add_field_order_refunded_time__add_field_orderitem_refund_reques"}}, {"pk": 113, "model": "south.migrationhistory", "fields": {"applied": "2014-01-25T15:57:43Z", "app_name": "shoppingcart", "migration": "0007_auto__add_field_orderitem_service_fee"}}, {"pk": 1, "model": "bulk_email.courseemailtemplate", "fields": {"plain_template": "{course_title}\n\n{{message_body}}\r\n----\r\nCopyright 2013 edX, All rights reserved.\r\n----\r\nConnect with edX:\r\nFacebook (http://facebook.com/edxonline)\r\nTwitter (http://twitter.com/edxonline)\r\nGoogle+ (https://plus.google.com/108235383044095082735)\r\nMeetup (http://www.meetup.com/edX-Communities/)\r\n----\r\nThis email was automatically sent from {platform_name}.\r\nYou are receiving this email at address {email} because you are enrolled in {course_title}\r\n(URL: {course_url} ).\r\nTo stop receiving email like this, update your account settings at {account_settings_url}.\r\n", "html_template": " Update from {course_title}

edX
Connect with edX:        

{course_title}


{{message_body}}
       
Copyright \u00a9 2013 edX, All rights reserved.


Our mailing address is:
edX
11 Cambridge Center, Suite 101
Cambridge, MA, USA 02142


This email was automatically sent from {platform_name}.
You are receiving this email at address {email} because you are enrolled in {course_title}.
To stop receiving email like this, update your course email settings here.
"}}, {"pk": 64, "model": "auth.permission", "fields": {"codename": "add_logentry", "name": "Can add log entry", "content_type": 22}}, {"pk": 65, "model": "auth.permission", "fields": {"codename": "change_logentry", "name": "Can change log entry", "content_type": 22}}, {"pk": 66, "model": "auth.permission", "fields": {"codename": "delete_logentry", "name": "Can delete log entry", "content_type": 22}}, {"pk": 4, "model": "auth.permission", "fields": {"codename": "add_group", "name": "Can add group", "content_type": 2}}, {"pk": 5, "model": "auth.permission", "fields": {"codename": "change_group", "name": "Can change group", "content_type": 2}}, {"pk": 6, "model": "auth.permission", "fields": {"codename": "delete_group", "name": "Can delete group", "content_type": 2}}, {"pk": 1, "model": "auth.permission", "fields": {"codename": "add_permission", "name": "Can add permission", "content_type": 1}}, {"pk": 2, "model": "auth.permission", "fields": {"codename": "change_permission", "name": "Can change permission", "content_type": 1}}, {"pk": 3, "model": "auth.permission", "fields": {"codename": "delete_permission", "name": "Can delete permission", "content_type": 1}}, {"pk": 7, "model": "auth.permission", "fields": {"codename": "add_user", "name": "Can add user", "content_type": 3}}, {"pk": 8, "model": "auth.permission", "fields": {"codename": "change_user", "name": "Can change user", "content_type": 3}}, {"pk": 9, "model": "auth.permission", "fields": {"codename": "delete_user", "name": "Can delete user", "content_type": 3}}, {"pk": 142, "model": "auth.permission", "fields": {"codename": "add_courseauthorization", "name": "Can add course authorization", "content_type": 48}}, {"pk": 143, "model": "auth.permission", "fields": {"codename": "change_courseauthorization", "name": "Can change course authorization", "content_type": 48}}, {"pk": 144, "model": "auth.permission", "fields": {"codename": "delete_courseauthorization", "name": "Can delete course authorization", "content_type": 48}}, {"pk": 133, "model": "auth.permission", "fields": {"codename": "add_courseemail", "name": "Can add course email", "content_type": 45}}, {"pk": 134, "model": "auth.permission", "fields": {"codename": "change_courseemail", "name": "Can change course email", "content_type": 45}}, {"pk": 135, "model": "auth.permission", "fields": {"codename": "delete_courseemail", "name": "Can delete course email", "content_type": 45}}, {"pk": 139, "model": "auth.permission", "fields": {"codename": "add_courseemailtemplate", "name": "Can add course email template", "content_type": 47}}, {"pk": 140, "model": "auth.permission", "fields": {"codename": "change_courseemailtemplate", "name": "Can change course email template", "content_type": 47}}, {"pk": 141, "model": "auth.permission", "fields": {"codename": "delete_courseemailtemplate", "name": "Can delete course email template", "content_type": 47}}, {"pk": 136, "model": "auth.permission", "fields": {"codename": "add_optout", "name": "Can add optout", "content_type": 46}}, {"pk": 137, "model": "auth.permission", "fields": {"codename": "change_optout", "name": "Can change optout", "content_type": 46}}, {"pk": 138, "model": "auth.permission", "fields": {"codename": "delete_optout", "name": "Can delete optout", "content_type": 46}}, {"pk": 118, "model": "auth.permission", "fields": {"codename": "add_certificatewhitelist", "name": "Can add certificate whitelist", "content_type": 40}}, {"pk": 119, "model": "auth.permission", "fields": {"codename": "change_certificatewhitelist", "name": "Can change certificate whitelist", "content_type": 40}}, {"pk": 120, "model": "auth.permission", "fields": {"codename": "delete_certificatewhitelist", "name": "Can delete certificate whitelist", "content_type": 40}}, {"pk": 121, "model": "auth.permission", "fields": {"codename": "add_generatedcertificate", "name": "Can add generated certificate", "content_type": 41}}, {"pk": 122, "model": "auth.permission", "fields": {"codename": "change_generatedcertificate", "name": "Can change generated certificate", "content_type": 41}}, {"pk": 123, "model": "auth.permission", "fields": {"codename": "delete_generatedcertificate", "name": "Can delete generated certificate", "content_type": 41}}, {"pk": 46, "model": "auth.permission", "fields": {"codename": "add_servercircuit", "name": "Can add server circuit", "content_type": 16}}, {"pk": 47, "model": "auth.permission", "fields": {"codename": "change_servercircuit", "name": "Can change server circuit", "content_type": 16}}, {"pk": 48, "model": "auth.permission", "fields": {"codename": "delete_servercircuit", "name": "Can delete server circuit", "content_type": 16}}, {"pk": 10, "model": "auth.permission", "fields": {"codename": "add_contenttype", "name": "Can add content type", "content_type": 4}}, {"pk": 11, "model": "auth.permission", "fields": {"codename": "change_contenttype", "name": "Can change content type", "content_type": 4}}, {"pk": 12, "model": "auth.permission", "fields": {"codename": "delete_contenttype", "name": "Can delete content type", "content_type": 4}}, {"pk": 82, "model": "auth.permission", "fields": {"codename": "add_offlinecomputedgrade", "name": "Can add offline computed grade", "content_type": 28}}, {"pk": 83, "model": "auth.permission", "fields": {"codename": "change_offlinecomputedgrade", "name": "Can change offline computed grade", "content_type": 28}}, {"pk": 84, "model": "auth.permission", "fields": {"codename": "delete_offlinecomputedgrade", "name": "Can delete offline computed grade", "content_type": 28}}, {"pk": 85, "model": "auth.permission", "fields": {"codename": "add_offlinecomputedgradelog", "name": "Can add offline computed grade log", "content_type": 29}}, {"pk": 86, "model": "auth.permission", "fields": {"codename": "change_offlinecomputedgradelog", "name": "Can change offline computed grade log", "content_type": 29}}, {"pk": 87, "model": "auth.permission", "fields": {"codename": "delete_offlinecomputedgradelog", "name": "Can delete offline computed grade log", "content_type": 29}}, {"pk": 67, "model": "auth.permission", "fields": {"codename": "add_studentmodule", "name": "Can add student module", "content_type": 23}}, {"pk": 68, "model": "auth.permission", "fields": {"codename": "change_studentmodule", "name": "Can change student module", "content_type": 23}}, {"pk": 69, "model": "auth.permission", "fields": {"codename": "delete_studentmodule", "name": "Can delete student module", "content_type": 23}}, {"pk": 70, "model": "auth.permission", "fields": {"codename": "add_studentmodulehistory", "name": "Can add student module history", "content_type": 24}}, {"pk": 71, "model": "auth.permission", "fields": {"codename": "change_studentmodulehistory", "name": "Can change student module history", "content_type": 24}}, {"pk": 72, "model": "auth.permission", "fields": {"codename": "delete_studentmodulehistory", "name": "Can delete student module history", "content_type": 24}}, {"pk": 79, "model": "auth.permission", "fields": {"codename": "add_xmodulestudentinfofield", "name": "Can add x module student info field", "content_type": 27}}, {"pk": 80, "model": "auth.permission", "fields": {"codename": "change_xmodulestudentinfofield", "name": "Can change x module student info field", "content_type": 27}}, {"pk": 81, "model": "auth.permission", "fields": {"codename": "delete_xmodulestudentinfofield", "name": "Can delete x module student info field", "content_type": 27}}, {"pk": 76, "model": "auth.permission", "fields": {"codename": "add_xmodulestudentprefsfield", "name": "Can add x module student prefs field", "content_type": 26}}, {"pk": 77, "model": "auth.permission", "fields": {"codename": "change_xmodulestudentprefsfield", "name": "Can change x module student prefs field", "content_type": 26}}, {"pk": 78, "model": "auth.permission", "fields": {"codename": "delete_xmodulestudentprefsfield", "name": "Can delete x module student prefs field", "content_type": 26}}, {"pk": 73, "model": "auth.permission", "fields": {"codename": "add_xmoduleuserstatesummaryfield", "name": "Can add x module user state summary field", "content_type": 25}}, {"pk": 74, "model": "auth.permission", "fields": {"codename": "change_xmoduleuserstatesummaryfield", "name": "Can change x module user state summary field", "content_type": 25}}, {"pk": 75, "model": "auth.permission", "fields": {"codename": "delete_xmoduleuserstatesummaryfield", "name": "Can delete x module user state summary field", "content_type": 25}}, {"pk": 52, "model": "auth.permission", "fields": {"codename": "add_courseusergroup", "name": "Can add course user group", "content_type": 18}}, {"pk": 53, "model": "auth.permission", "fields": {"codename": "change_courseusergroup", "name": "Can change course user group", "content_type": 18}}, {"pk": 54, "model": "auth.permission", "fields": {"codename": "delete_courseusergroup", "name": "Can delete course user group", "content_type": 18}}, {"pk": 214, "model": "auth.permission", "fields": {"codename": "add_coursemode", "name": "Can add course mode", "content_type": 71}}, {"pk": 215, "model": "auth.permission", "fields": {"codename": "change_coursemode", "name": "Can change course mode", "content_type": 71}}, {"pk": 216, "model": "auth.permission", "fields": {"codename": "delete_coursemode", "name": "Can delete course mode", "content_type": 71}}, {"pk": 190, "model": "auth.permission", "fields": {"codename": "add_notification", "name": "Can add notification", "content_type": 63}}, {"pk": 191, "model": "auth.permission", "fields": {"codename": "change_notification", "name": "Can change notification", "content_type": 63}}, {"pk": 192, "model": "auth.permission", "fields": {"codename": "delete_notification", "name": "Can delete notification", "content_type": 63}}, {"pk": 181, "model": "auth.permission", "fields": {"codename": "add_notificationtype", "name": "Can add type", "content_type": 60}}, {"pk": 182, "model": "auth.permission", "fields": {"codename": "change_notificationtype", "name": "Can change type", "content_type": 60}}, {"pk": 183, "model": "auth.permission", "fields": {"codename": "delete_notificationtype", "name": "Can delete type", "content_type": 60}}, {"pk": 184, "model": "auth.permission", "fields": {"codename": "add_settings", "name": "Can add settings", "content_type": 61}}, {"pk": 185, "model": "auth.permission", "fields": {"codename": "change_settings", "name": "Can change settings", "content_type": 61}}, {"pk": 186, "model": "auth.permission", "fields": {"codename": "delete_settings", "name": "Can delete settings", "content_type": 61}}, {"pk": 187, "model": "auth.permission", "fields": {"codename": "add_subscription", "name": "Can add subscription", "content_type": 62}}, {"pk": 188, "model": "auth.permission", "fields": {"codename": "change_subscription", "name": "Can change subscription", "content_type": 62}}, {"pk": 189, "model": "auth.permission", "fields": {"codename": "delete_subscription", "name": "Can delete subscription", "content_type": 62}}, {"pk": 58, "model": "auth.permission", "fields": {"codename": "add_association", "name": "Can add association", "content_type": 20}}, {"pk": 59, "model": "auth.permission", "fields": {"codename": "change_association", "name": "Can change association", "content_type": 20}}, {"pk": 60, "model": "auth.permission", "fields": {"codename": "delete_association", "name": "Can delete association", "content_type": 20}}, {"pk": 55, "model": "auth.permission", "fields": {"codename": "add_nonce", "name": "Can add nonce", "content_type": 19}}, {"pk": 56, "model": "auth.permission", "fields": {"codename": "change_nonce", "name": "Can change nonce", "content_type": 19}}, {"pk": 57, "model": "auth.permission", "fields": {"codename": "delete_nonce", "name": "Can delete nonce", "content_type": 19}}, {"pk": 61, "model": "auth.permission", "fields": {"codename": "add_useropenid", "name": "Can add user open id", "content_type": 21}}, {"pk": 62, "model": "auth.permission", "fields": {"codename": "change_useropenid", "name": "Can change user open id", "content_type": 21}}, {"pk": 63, "model": "auth.permission", "fields": {"codename": "delete_useropenid", "name": "Can delete user open id", "content_type": 21}}, {"pk": 28, "model": "auth.permission", "fields": {"codename": "add_crontabschedule", "name": "Can add crontab", "content_type": 10}}, {"pk": 29, "model": "auth.permission", "fields": {"codename": "change_crontabschedule", "name": "Can change crontab", "content_type": 10}}, {"pk": 30, "model": "auth.permission", "fields": {"codename": "delete_crontabschedule", "name": "Can delete crontab", "content_type": 10}}, {"pk": 25, "model": "auth.permission", "fields": {"codename": "add_intervalschedule", "name": "Can add interval", "content_type": 9}}, {"pk": 26, "model": "auth.permission", "fields": {"codename": "change_intervalschedule", "name": "Can change interval", "content_type": 9}}, {"pk": 27, "model": "auth.permission", "fields": {"codename": "delete_intervalschedule", "name": "Can delete interval", "content_type": 9}}, {"pk": 34, "model": "auth.permission", "fields": {"codename": "add_periodictask", "name": "Can add periodic task", "content_type": 12}}, {"pk": 35, "model": "auth.permission", "fields": {"codename": "change_periodictask", "name": "Can change periodic task", "content_type": 12}}, {"pk": 36, "model": "auth.permission", "fields": {"codename": "delete_periodictask", "name": "Can delete periodic task", "content_type": 12}}, {"pk": 31, "model": "auth.permission", "fields": {"codename": "add_periodictasks", "name": "Can add periodic tasks", "content_type": 11}}, {"pk": 32, "model": "auth.permission", "fields": {"codename": "change_periodictasks", "name": "Can change periodic tasks", "content_type": 11}}, {"pk": 33, "model": "auth.permission", "fields": {"codename": "delete_periodictasks", "name": "Can delete periodic tasks", "content_type": 11}}, {"pk": 19, "model": "auth.permission", "fields": {"codename": "add_taskmeta", "name": "Can add task state", "content_type": 7}}, {"pk": 20, "model": "auth.permission", "fields": {"codename": "change_taskmeta", "name": "Can change task state", "content_type": 7}}, {"pk": 21, "model": "auth.permission", "fields": {"codename": "delete_taskmeta", "name": "Can delete task state", "content_type": 7}}, {"pk": 22, "model": "auth.permission", "fields": {"codename": "add_tasksetmeta", "name": "Can add saved group result", "content_type": 8}}, {"pk": 23, "model": "auth.permission", "fields": {"codename": "change_tasksetmeta", "name": "Can change saved group result", "content_type": 8}}, {"pk": 24, "model": "auth.permission", "fields": {"codename": "delete_tasksetmeta", "name": "Can delete saved group result", "content_type": 8}}, {"pk": 40, "model": "auth.permission", "fields": {"codename": "add_taskstate", "name": "Can add task", "content_type": 14}}, {"pk": 41, "model": "auth.permission", "fields": {"codename": "change_taskstate", "name": "Can change task", "content_type": 14}}, {"pk": 42, "model": "auth.permission", "fields": {"codename": "delete_taskstate", "name": "Can delete task", "content_type": 14}}, {"pk": 37, "model": "auth.permission", "fields": {"codename": "add_workerstate", "name": "Can add worker", "content_type": 13}}, {"pk": 38, "model": "auth.permission", "fields": {"codename": "change_workerstate", "name": "Can change worker", "content_type": 13}}, {"pk": 39, "model": "auth.permission", "fields": {"codename": "delete_workerstate", "name": "Can delete worker", "content_type": 13}}, {"pk": 145, "model": "auth.permission", "fields": {"codename": "add_externalauthmap", "name": "Can add external auth map", "content_type": 49}}, {"pk": 146, "model": "auth.permission", "fields": {"codename": "change_externalauthmap", "name": "Can change external auth map", "content_type": 49}}, {"pk": 147, "model": "auth.permission", "fields": {"codename": "delete_externalauthmap", "name": "Can delete external auth map", "content_type": 49}}, {"pk": 196, "model": "auth.permission", "fields": {"codename": "add_puzzlecomplete", "name": "Can add puzzle complete", "content_type": 65}}, {"pk": 197, "model": "auth.permission", "fields": {"codename": "change_puzzlecomplete", "name": "Can change puzzle complete", "content_type": 65}}, {"pk": 198, "model": "auth.permission", "fields": {"codename": "delete_puzzlecomplete", "name": "Can delete puzzle complete", "content_type": 65}}, {"pk": 193, "model": "auth.permission", "fields": {"codename": "add_score", "name": "Can add score", "content_type": 64}}, {"pk": 194, "model": "auth.permission", "fields": {"codename": "change_score", "name": "Can change score", "content_type": 64}}, {"pk": 195, "model": "auth.permission", "fields": {"codename": "delete_score", "name": "Can delete score", "content_type": 64}}, {"pk": 124, "model": "auth.permission", "fields": {"codename": "add_instructortask", "name": "Can add instructor task", "content_type": 42}}, {"pk": 125, "model": "auth.permission", "fields": {"codename": "change_instructortask", "name": "Can change instructor task", "content_type": 42}}, {"pk": 126, "model": "auth.permission", "fields": {"codename": "delete_instructortask", "name": "Can delete instructor task", "content_type": 42}}, {"pk": 127, "model": "auth.permission", "fields": {"codename": "add_coursesoftware", "name": "Can add course software", "content_type": 43}}, {"pk": 128, "model": "auth.permission", "fields": {"codename": "change_coursesoftware", "name": "Can change course software", "content_type": 43}}, {"pk": 129, "model": "auth.permission", "fields": {"codename": "delete_coursesoftware", "name": "Can delete course software", "content_type": 43}}, {"pk": 130, "model": "auth.permission", "fields": {"codename": "add_userlicense", "name": "Can add user license", "content_type": 44}}, {"pk": 131, "model": "auth.permission", "fields": {"codename": "change_userlicense", "name": "Can change user license", "content_type": 44}}, {"pk": 132, "model": "auth.permission", "fields": {"codename": "delete_userlicense", "name": "Can delete user license", "content_type": 44}}, {"pk": 220, "model": "auth.permission", "fields": {"codename": "add_linkedin", "name": "Can add linked in", "content_type": 73}}, {"pk": 221, "model": "auth.permission", "fields": {"codename": "change_linkedin", "name": "Can change linked in", "content_type": 73}}, {"pk": 222, "model": "auth.permission", "fields": {"codename": "delete_linkedin", "name": "Can delete linked in", "content_type": 73}}, {"pk": 208, "model": "auth.permission", "fields": {"codename": "add_note", "name": "Can add note", "content_type": 69}}, {"pk": 209, "model": "auth.permission", "fields": {"codename": "change_note", "name": "Can change note", "content_type": 69}}, {"pk": 210, "model": "auth.permission", "fields": {"codename": "delete_note", "name": "Can delete note", "content_type": 69}}, {"pk": 49, "model": "auth.permission", "fields": {"codename": "add_psychometricdata", "name": "Can add psychometric data", "content_type": 17}}, {"pk": 50, "model": "auth.permission", "fields": {"codename": "change_psychometricdata", "name": "Can change psychometric data", "content_type": 17}}, {"pk": 51, "model": "auth.permission", "fields": {"codename": "delete_psychometricdata", "name": "Can delete psychometric data", "content_type": 17}}, {"pk": 13, "model": "auth.permission", "fields": {"codename": "add_session", "name": "Can add session", "content_type": 5}}, {"pk": 14, "model": "auth.permission", "fields": {"codename": "change_session", "name": "Can change session", "content_type": 5}}, {"pk": 15, "model": "auth.permission", "fields": {"codename": "delete_session", "name": "Can delete session", "content_type": 5}}, {"pk": 235, "model": "auth.permission", "fields": {"codename": "add_certificateitem", "name": "Can add certificate item", "content_type": 78}}, {"pk": 236, "model": "auth.permission", "fields": {"codename": "change_certificateitem", "name": "Can change certificate item", "content_type": 78}}, {"pk": 237, "model": "auth.permission", "fields": {"codename": "delete_certificateitem", "name": "Can delete certificate item", "content_type": 78}}, {"pk": 223, "model": "auth.permission", "fields": {"codename": "add_order", "name": "Can add order", "content_type": 74}}, {"pk": 224, "model": "auth.permission", "fields": {"codename": "change_order", "name": "Can change order", "content_type": 74}}, {"pk": 225, "model": "auth.permission", "fields": {"codename": "delete_order", "name": "Can delete order", "content_type": 74}}, {"pk": 226, "model": "auth.permission", "fields": {"codename": "add_orderitem", "name": "Can add order item", "content_type": 75}}, {"pk": 227, "model": "auth.permission", "fields": {"codename": "change_orderitem", "name": "Can change order item", "content_type": 75}}, {"pk": 228, "model": "auth.permission", "fields": {"codename": "delete_orderitem", "name": "Can delete order item", "content_type": 75}}, {"pk": 229, "model": "auth.permission", "fields": {"codename": "add_paidcourseregistration", "name": "Can add paid course registration", "content_type": 76}}, {"pk": 230, "model": "auth.permission", "fields": {"codename": "change_paidcourseregistration", "name": "Can change paid course registration", "content_type": 76}}, {"pk": 231, "model": "auth.permission", "fields": {"codename": "delete_paidcourseregistration", "name": "Can delete paid course registration", "content_type": 76}}, {"pk": 232, "model": "auth.permission", "fields": {"codename": "add_paidcourseregistrationannotation", "name": "Can add paid course registration annotation", "content_type": 77}}, {"pk": 233, "model": "auth.permission", "fields": {"codename": "change_paidcourseregistrationannotation", "name": "Can change paid course registration annotation", "content_type": 77}}, {"pk": 234, "model": "auth.permission", "fields": {"codename": "delete_paidcourseregistrationannotation", "name": "Can delete paid course registration annotation", "content_type": 77}}, {"pk": 16, "model": "auth.permission", "fields": {"codename": "add_site", "name": "Can add site", "content_type": 6}}, {"pk": 17, "model": "auth.permission", "fields": {"codename": "change_site", "name": "Can change site", "content_type": 6}}, {"pk": 18, "model": "auth.permission", "fields": {"codename": "delete_site", "name": "Can delete site", "content_type": 6}}, {"pk": 43, "model": "auth.permission", "fields": {"codename": "add_migrationhistory", "name": "Can add migration history", "content_type": 15}}, {"pk": 44, "model": "auth.permission", "fields": {"codename": "change_migrationhistory", "name": "Can change migration history", "content_type": 15}}, {"pk": 45, "model": "auth.permission", "fields": {"codename": "delete_migrationhistory", "name": "Can delete migration history", "content_type": 15}}, {"pk": 88, "model": "auth.permission", "fields": {"codename": "add_anonymoususerid", "name": "Can add anonymous user id", "content_type": 30}}, {"pk": 89, "model": "auth.permission", "fields": {"codename": "change_anonymoususerid", "name": "Can change anonymous user id", "content_type": 30}}, {"pk": 90, "model": "auth.permission", "fields": {"codename": "delete_anonymoususerid", "name": "Can delete anonymous user id", "content_type": 30}}, {"pk": 109, "model": "auth.permission", "fields": {"codename": "add_courseenrollment", "name": "Can add course enrollment", "content_type": 37}}, {"pk": 110, "model": "auth.permission", "fields": {"codename": "change_courseenrollment", "name": "Can change course enrollment", "content_type": 37}}, {"pk": 111, "model": "auth.permission", "fields": {"codename": "delete_courseenrollment", "name": "Can delete course enrollment", "content_type": 37}}, {"pk": 112, "model": "auth.permission", "fields": {"codename": "add_courseenrollmentallowed", "name": "Can add course enrollment allowed", "content_type": 38}}, {"pk": 113, "model": "auth.permission", "fields": {"codename": "change_courseenrollmentallowed", "name": "Can change course enrollment allowed", "content_type": 38}}, {"pk": 114, "model": "auth.permission", "fields": {"codename": "delete_courseenrollmentallowed", "name": "Can delete course enrollment allowed", "content_type": 38}}, {"pk": 106, "model": "auth.permission", "fields": {"codename": "add_pendingemailchange", "name": "Can add pending email change", "content_type": 36}}, {"pk": 107, "model": "auth.permission", "fields": {"codename": "change_pendingemailchange", "name": "Can change pending email change", "content_type": 36}}, {"pk": 108, "model": "auth.permission", "fields": {"codename": "delete_pendingemailchange", "name": "Can delete pending email change", "content_type": 36}}, {"pk": 103, "model": "auth.permission", "fields": {"codename": "add_pendingnamechange", "name": "Can add pending name change", "content_type": 35}}, {"pk": 104, "model": "auth.permission", "fields": {"codename": "change_pendingnamechange", "name": "Can change pending name change", "content_type": 35}}, {"pk": 105, "model": "auth.permission", "fields": {"codename": "delete_pendingnamechange", "name": "Can delete pending name change", "content_type": 35}}, {"pk": 100, "model": "auth.permission", "fields": {"codename": "add_registration", "name": "Can add registration", "content_type": 34}}, {"pk": 101, "model": "auth.permission", "fields": {"codename": "change_registration", "name": "Can change registration", "content_type": 34}}, {"pk": 102, "model": "auth.permission", "fields": {"codename": "delete_registration", "name": "Can delete registration", "content_type": 34}}, {"pk": 94, "model": "auth.permission", "fields": {"codename": "add_userprofile", "name": "Can add user profile", "content_type": 32}}, {"pk": 95, "model": "auth.permission", "fields": {"codename": "change_userprofile", "name": "Can change user profile", "content_type": 32}}, {"pk": 96, "model": "auth.permission", "fields": {"codename": "delete_userprofile", "name": "Can delete user profile", "content_type": 32}}, {"pk": 91, "model": "auth.permission", "fields": {"codename": "add_userstanding", "name": "Can add user standing", "content_type": 31}}, {"pk": 92, "model": "auth.permission", "fields": {"codename": "change_userstanding", "name": "Can change user standing", "content_type": 31}}, {"pk": 93, "model": "auth.permission", "fields": {"codename": "delete_userstanding", "name": "Can delete user standing", "content_type": 31}}, {"pk": 97, "model": "auth.permission", "fields": {"codename": "add_usertestgroup", "name": "Can add user test group", "content_type": 33}}, {"pk": 98, "model": "auth.permission", "fields": {"codename": "change_usertestgroup", "name": "Can change user test group", "content_type": 33}}, {"pk": 99, "model": "auth.permission", "fields": {"codename": "delete_usertestgroup", "name": "Can delete user test group", "content_type": 33}}, {"pk": 115, "model": "auth.permission", "fields": {"codename": "add_trackinglog", "name": "Can add tracking log", "content_type": 39}}, {"pk": 116, "model": "auth.permission", "fields": {"codename": "change_trackinglog", "name": "Can change tracking log", "content_type": 39}}, {"pk": 117, "model": "auth.permission", "fields": {"codename": "delete_trackinglog", "name": "Can delete tracking log", "content_type": 39}}, {"pk": 211, "model": "auth.permission", "fields": {"codename": "add_userpreference", "name": "Can add user preference", "content_type": 70}}, {"pk": 212, "model": "auth.permission", "fields": {"codename": "change_userpreference", "name": "Can change user preference", "content_type": 70}}, {"pk": 213, "model": "auth.permission", "fields": {"codename": "delete_userpreference", "name": "Can delete user preference", "content_type": 70}}, {"pk": 217, "model": "auth.permission", "fields": {"codename": "add_softwaresecurephotoverification", "name": "Can add software secure photo verification", "content_type": 72}}, {"pk": 218, "model": "auth.permission", "fields": {"codename": "change_softwaresecurephotoverification", "name": "Can change software secure photo verification", "content_type": 72}}, {"pk": 219, "model": "auth.permission", "fields": {"codename": "delete_softwaresecurephotoverification", "name": "Can delete software secure photo verification", "content_type": 72}}, {"pk": 199, "model": "auth.permission", "fields": {"codename": "add_flag", "name": "Can add flag", "content_type": 66}}, {"pk": 200, "model": "auth.permission", "fields": {"codename": "change_flag", "name": "Can change flag", "content_type": 66}}, {"pk": 201, "model": "auth.permission", "fields": {"codename": "delete_flag", "name": "Can delete flag", "content_type": 66}}, {"pk": 205, "model": "auth.permission", "fields": {"codename": "add_sample", "name": "Can add sample", "content_type": 68}}, {"pk": 206, "model": "auth.permission", "fields": {"codename": "change_sample", "name": "Can change sample", "content_type": 68}}, {"pk": 207, "model": "auth.permission", "fields": {"codename": "delete_sample", "name": "Can delete sample", "content_type": 68}}, {"pk": 202, "model": "auth.permission", "fields": {"codename": "add_switch", "name": "Can add switch", "content_type": 67}}, {"pk": 203, "model": "auth.permission", "fields": {"codename": "change_switch", "name": "Can change switch", "content_type": 67}}, {"pk": 204, "model": "auth.permission", "fields": {"codename": "delete_switch", "name": "Can delete switch", "content_type": 67}}, {"pk": 148, "model": "auth.permission", "fields": {"codename": "add_article", "name": "Can add article", "content_type": 50}}, {"pk": 152, "model": "auth.permission", "fields": {"codename": "assign", "name": "Can change ownership of any article", "content_type": 50}}, {"pk": 149, "model": "auth.permission", "fields": {"codename": "change_article", "name": "Can change article", "content_type": 50}}, {"pk": 150, "model": "auth.permission", "fields": {"codename": "delete_article", "name": "Can delete article", "content_type": 50}}, {"pk": 153, "model": "auth.permission", "fields": {"codename": "grant", "name": "Can assign permissions to other users", "content_type": 50}}, {"pk": 151, "model": "auth.permission", "fields": {"codename": "moderate", "name": "Can edit all articles and lock/unlock/restore", "content_type": 50}}, {"pk": 154, "model": "auth.permission", "fields": {"codename": "add_articleforobject", "name": "Can add Article for object", "content_type": 51}}, {"pk": 155, "model": "auth.permission", "fields": {"codename": "change_articleforobject", "name": "Can change Article for object", "content_type": 51}}, {"pk": 156, "model": "auth.permission", "fields": {"codename": "delete_articleforobject", "name": "Can delete Article for object", "content_type": 51}}, {"pk": 163, "model": "auth.permission", "fields": {"codename": "add_articleplugin", "name": "Can add article plugin", "content_type": 54}}, {"pk": 164, "model": "auth.permission", "fields": {"codename": "change_articleplugin", "name": "Can change article plugin", "content_type": 54}}, {"pk": 165, "model": "auth.permission", "fields": {"codename": "delete_articleplugin", "name": "Can delete article plugin", "content_type": 54}}, {"pk": 157, "model": "auth.permission", "fields": {"codename": "add_articlerevision", "name": "Can add article revision", "content_type": 52}}, {"pk": 158, "model": "auth.permission", "fields": {"codename": "change_articlerevision", "name": "Can change article revision", "content_type": 52}}, {"pk": 159, "model": "auth.permission", "fields": {"codename": "delete_articlerevision", "name": "Can delete article revision", "content_type": 52}}, {"pk": 178, "model": "auth.permission", "fields": {"codename": "add_articlesubscription", "name": "Can add article subscription", "content_type": 59}}, {"pk": 179, "model": "auth.permission", "fields": {"codename": "change_articlesubscription", "name": "Can change article subscription", "content_type": 59}}, {"pk": 180, "model": "auth.permission", "fields": {"codename": "delete_articlesubscription", "name": "Can delete article subscription", "content_type": 59}}, {"pk": 166, "model": "auth.permission", "fields": {"codename": "add_reusableplugin", "name": "Can add reusable plugin", "content_type": 55}}, {"pk": 167, "model": "auth.permission", "fields": {"codename": "change_reusableplugin", "name": "Can change reusable plugin", "content_type": 55}}, {"pk": 168, "model": "auth.permission", "fields": {"codename": "delete_reusableplugin", "name": "Can delete reusable plugin", "content_type": 55}}, {"pk": 172, "model": "auth.permission", "fields": {"codename": "add_revisionplugin", "name": "Can add revision plugin", "content_type": 57}}, {"pk": 173, "model": "auth.permission", "fields": {"codename": "change_revisionplugin", "name": "Can change revision plugin", "content_type": 57}}, {"pk": 174, "model": "auth.permission", "fields": {"codename": "delete_revisionplugin", "name": "Can delete revision plugin", "content_type": 57}}, {"pk": 175, "model": "auth.permission", "fields": {"codename": "add_revisionpluginrevision", "name": "Can add revision plugin revision", "content_type": 58}}, {"pk": 176, "model": "auth.permission", "fields": {"codename": "change_revisionpluginrevision", "name": "Can change revision plugin revision", "content_type": 58}}, {"pk": 177, "model": "auth.permission", "fields": {"codename": "delete_revisionpluginrevision", "name": "Can delete revision plugin revision", "content_type": 58}}, {"pk": 169, "model": "auth.permission", "fields": {"codename": "add_simpleplugin", "name": "Can add simple plugin", "content_type": 56}}, {"pk": 170, "model": "auth.permission", "fields": {"codename": "change_simpleplugin", "name": "Can change simple plugin", "content_type": 56}}, {"pk": 171, "model": "auth.permission", "fields": {"codename": "delete_simpleplugin", "name": "Can delete simple plugin", "content_type": 56}}, {"pk": 160, "model": "auth.permission", "fields": {"codename": "add_urlpath", "name": "Can add URL path", "content_type": 53}}, {"pk": 161, "model": "auth.permission", "fields": {"codename": "change_urlpath", "name": "Can change URL path", "content_type": 53}}, {"pk": 162, "model": "auth.permission", "fields": {"codename": "delete_urlpath", "name": "Can delete URL path", "content_type": 53}}] \ No newline at end of file diff --git a/common/test/db_cache/bok_choy_schema.sql b/common/test/db_cache/bok_choy_schema.sql new file mode 100644 index 0000000000..276ebdf778 --- /dev/null +++ b/common/test/db_cache/bok_choy_schema.sql @@ -0,0 +1,1568 @@ + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; +DROP TABLE IF EXISTS `auth_group`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_group` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(80) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_group_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_group_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `group_id` int(11) NOT NULL, + `permission_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `group_id` (`group_id`,`permission_id`), + KEY `auth_group_permissions_bda51c3c` (`group_id`), + KEY `auth_group_permissions_1e014c8f` (`permission_id`), + CONSTRAINT `group_id_refs_id_3cea63fe` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `permission_id_refs_id_a7792de1` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_permission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_permission` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `content_type_id` int(11) NOT NULL, + `codename` varchar(100) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `content_type_id` (`content_type_id`,`codename`), + KEY `auth_permission_e4470c6e` (`content_type_id`), + CONSTRAINT `content_type_id_refs_id_728de91f` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=238 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_registration`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_registration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `activation_key` varchar(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + UNIQUE KEY `activation_key` (`activation_key`), + CONSTRAINT `user_id_refs_id_3fe8066a03e5b0b5` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_user`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_user` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `username` varchar(30) NOT NULL, + `first_name` varchar(30) NOT NULL, + `last_name` varchar(30) NOT NULL, + `email` varchar(75) NOT NULL, + `password` varchar(128) NOT NULL, + `is_staff` tinyint(1) NOT NULL, + `is_active` tinyint(1) NOT NULL, + `is_superuser` tinyint(1) NOT NULL, + `last_login` datetime NOT NULL, + `date_joined` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `username` (`username`), + UNIQUE KEY `email` (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_user_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_user_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`,`group_id`), + KEY `auth_user_groups_fbfc09f1` (`user_id`), + KEY `auth_user_groups_bda51c3c` (`group_id`), + CONSTRAINT `user_id_refs_id_831107f1` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `group_id_refs_id_f0ee9890` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_user_user_permissions`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_user_user_permissions` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `permission_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`,`permission_id`), + KEY `auth_user_user_permissions_fbfc09f1` (`user_id`), + KEY `auth_user_user_permissions_1e014c8f` (`permission_id`), + CONSTRAINT `user_id_refs_id_f2045483` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `permission_id_refs_id_67e79cb` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `auth_userprofile`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `auth_userprofile` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `language` varchar(255) NOT NULL, + `location` varchar(255) NOT NULL, + `meta` longtext NOT NULL, + `courseware` varchar(255) NOT NULL, + `gender` varchar(6) DEFAULT NULL, + `mailing_address` longtext, + `year_of_birth` int(11) DEFAULT NULL, + `level_of_education` varchar(6) DEFAULT NULL, + `goals` longtext, + `allow_certificate` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + KEY `auth_userprofile_52094d6e` (`name`), + KEY `auth_userprofile_8a7ac9ab` (`language`), + KEY `auth_userprofile_b54954de` (`location`), + KEY `auth_userprofile_fca3d292` (`gender`), + KEY `auth_userprofile_d85587` (`year_of_birth`), + KEY `auth_userprofile_551e365c` (`level_of_education`), + CONSTRAINT `user_id_refs_id_3daaa960628b4c11` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `bulk_email_courseauthorization`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bulk_email_courseauthorization` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `email_enabled` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `bulk_email_courseauthorization_ff48d8e5` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `bulk_email_courseemail`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bulk_email_courseemail` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `sender_id` int(11) DEFAULT NULL, + `slug` varchar(128) NOT NULL, + `subject` varchar(128) NOT NULL, + `html_message` longtext, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + `course_id` varchar(255) NOT NULL, + `to_option` varchar(64) NOT NULL, + `text_message` longtext, + PRIMARY KEY (`id`), + KEY `bulk_email_courseemail_901f59e9` (`sender_id`), + KEY `bulk_email_courseemail_36af87d1` (`slug`), + KEY `bulk_email_courseemail_ff48d8e5` (`course_id`), + CONSTRAINT `sender_id_refs_id_5e8b8f9870ed6279` FOREIGN KEY (`sender_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `bulk_email_courseemailtemplate`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bulk_email_courseemailtemplate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `html_template` longtext, + `plain_template` longtext, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `bulk_email_optout`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `bulk_email_optout` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `user_id` int(11) DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `bulk_email_optout_course_id_368f7519b2997e1a_uniq` (`course_id`,`user_id`), + KEY `bulk_email_optout_ff48d8e5` (`course_id`), + KEY `bulk_email_optout_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_fc2bac99e68e67c` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `celery_taskmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `celery_taskmeta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `task_id` varchar(255) NOT NULL, + `status` varchar(50) NOT NULL, + `result` longtext, + `date_done` datetime NOT NULL, + `traceback` longtext, + `hidden` tinyint(1) NOT NULL, + `meta` longtext, + PRIMARY KEY (`id`), + UNIQUE KEY `task_id` (`task_id`), + KEY `celery_taskmeta_c91f1bf` (`hidden`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `celery_tasksetmeta`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `celery_tasksetmeta` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `taskset_id` varchar(255) NOT NULL, + `result` longtext NOT NULL, + `date_done` datetime NOT NULL, + `hidden` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `taskset_id` (`taskset_id`), + KEY `celery_tasksetmeta_c91f1bf` (`hidden`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `certificates_certificatewhitelist`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_certificatewhitelist` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `whitelist` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `certificates_certificatewhitelist_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_517c1c6aa7ba9306` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `certificates_generatedcertificate`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `certificates_generatedcertificate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `download_url` varchar(128) NOT NULL, + `grade` varchar(5) NOT NULL, + `course_id` varchar(255) NOT NULL, + `key` varchar(32) NOT NULL, + `distinction` tinyint(1) NOT NULL, + `status` varchar(32) NOT NULL, + `verify_uuid` varchar(32) NOT NULL, + `download_uuid` varchar(32) NOT NULL, + `name` varchar(255) NOT NULL, + `created_date` datetime NOT NULL, + `modified_date` datetime NOT NULL, + `error_reason` varchar(512) NOT NULL, + `mode` varchar(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `certificates_generatedcertifica_course_id_1389f6b2d72f5e78_uniq` (`course_id`,`user_id`), + KEY `certificates_generatedcertificate_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_6c4fb3478e23bfe2` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `circuit_servercircuit`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `circuit_servercircuit` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(32) NOT NULL, + `schematic` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `course_groups_courseusergroup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_courseusergroup` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `group_type` varchar(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`,`course_id`), + KEY `course_groups_courseusergroup_ff48d8e5` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `course_groups_courseusergroup_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_groups_courseusergroup_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `courseusergroup_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseusergroup_id` (`courseusergroup_id`,`user_id`), + KEY `course_groups_courseusergroup_users_caee1c64` (`courseusergroup_id`), + KEY `course_groups_courseusergroup_users_fbfc09f1` (`user_id`), + CONSTRAINT `courseusergroup_id_refs_id_d26180aa` FOREIGN KEY (`courseusergroup_id`) REFERENCES `course_groups_courseusergroup` (`id`), + CONSTRAINT `user_id_refs_id_bf33b47a` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `course_modes_coursemode`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `course_modes_coursemode` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `mode_slug` varchar(100) NOT NULL, + `mode_display_name` varchar(255) NOT NULL, + `min_price` int(11) NOT NULL, + `suggested_prices` varchar(255) NOT NULL, + `currency` varchar(8) NOT NULL, + `expiration_date` date DEFAULT NULL, + `expiration_datetime` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `course_modes_coursemode_course_id_69505c92fc09856_uniq` (`course_id`,`currency`,`mode_slug`), + KEY `course_modes_coursemode_ff48d8e5` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_offlinecomputedgrade`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_offlinecomputedgrade` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `created` datetime DEFAULT NULL, + `updated` datetime NOT NULL, + `gradeset` longtext, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_offlinecomputedgrade_user_id_46133bbd0926078f_uniq` (`user_id`,`course_id`), + KEY `courseware_offlinecomputedgrade_fbfc09f1` (`user_id`), + KEY `courseware_offlinecomputedgrade_ff48d8e5` (`course_id`), + KEY `courseware_offlinecomputedgrade_3216ff68` (`created`), + KEY `courseware_offlinecomputedgrade_8aac229` (`updated`), + CONSTRAINT `user_id_refs_id_7b3221f638cf339d` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_offlinecomputedgradelog`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_offlinecomputedgradelog` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(255) NOT NULL, + `created` datetime DEFAULT NULL, + `seconds` int(11) NOT NULL, + `nstudents` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `courseware_offlinecomputedgradelog_ff48d8e5` (`course_id`), + KEY `courseware_offlinecomputedgradelog_3216ff68` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_studentmodule`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_studentmodule` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `module_type` varchar(32) NOT NULL, + `module_id` varchar(255) NOT NULL, + `student_id` int(11) NOT NULL, + `state` longtext, + `grade` double DEFAULT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + `max_grade` double DEFAULT NULL, + `done` varchar(8) NOT NULL, + `course_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_studentmodule_student_id_635d77aea1256de5_uniq` (`student_id`,`module_id`,`course_id`), + KEY `courseware_studentmodule_42ff452e` (`student_id`), + KEY `courseware_studentmodule_3216ff68` (`created`), + KEY `courseware_studentmodule_6dff86b5` (`grade`), + KEY `courseware_studentmodule_5436e97a` (`modified`), + KEY `courseware_studentmodule_2d8768ff` (`module_type`), + KEY `courseware_studentmodule_f53ed95e` (`module_id`), + KEY `courseware_studentmodule_1923c03f` (`done`), + KEY `courseware_studentmodule_ff48d8e5` (`course_id`), + CONSTRAINT `student_id_refs_id_51af713179ba2570` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_studentmodulehistory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_studentmodulehistory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `student_module_id` int(11) NOT NULL, + `version` varchar(255) DEFAULT NULL, + `created` datetime NOT NULL, + `state` longtext, + `grade` double DEFAULT NULL, + `max_grade` double DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `courseware_studentmodulehistory_5656f5fe` (`student_module_id`), + KEY `courseware_studentmodulehistory_659105e4` (`version`), + KEY `courseware_studentmodulehistory_3216ff68` (`created`), + CONSTRAINT `student_module_id_refs_id_51904344e48636f4` FOREIGN KEY (`student_module_id`) REFERENCES `courseware_studentmodule` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_xmodulestudentinfofield`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_xmodulestudentinfofield` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `field_name` varchar(64) NOT NULL, + `value` longtext NOT NULL, + `student_id` int(11) NOT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_xmodulestudentinfof_student_id_33f2f772c49db067_uniq` (`student_id`,`field_name`), + KEY `courseware_xmodulestudentinfofield_7e1499` (`field_name`), + KEY `courseware_xmodulestudentinfofield_42ff452e` (`student_id`), + KEY `courseware_xmodulestudentinfofield_3216ff68` (`created`), + KEY `courseware_xmodulestudentinfofield_5436e97a` (`modified`), + CONSTRAINT `student_id_refs_id_66e06928bfcfbe68` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_xmodulestudentprefsfield`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_xmodulestudentprefsfield` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `field_name` varchar(64) NOT NULL, + `module_type` varchar(64) NOT NULL, + `value` longtext NOT NULL, + `student_id` int(11) NOT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_xmodulestudentprefs_student_id_2a5d275498b7a407_uniq` (`student_id`,`module_type`,`field_name`), + KEY `courseware_xmodulestudentprefsfield_7e1499` (`field_name`), + KEY `courseware_xmodulestudentprefsfield_2d8768ff` (`module_type`), + KEY `courseware_xmodulestudentprefsfield_42ff452e` (`student_id`), + KEY `courseware_xmodulestudentprefsfield_3216ff68` (`created`), + KEY `courseware_xmodulestudentprefsfield_5436e97a` (`modified`), + CONSTRAINT `student_id_refs_id_32bbaa45d7b9940b` FOREIGN KEY (`student_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `courseware_xmoduleuserstatesummaryfield`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `courseware_xmoduleuserstatesummaryfield` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `field_name` varchar(64) NOT NULL, + `usage_id` varchar(255) NOT NULL, + `value` longtext NOT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `courseware_xmodulecontentfi_definition_id_50fa4fd570cf2f4a_uniq` (`usage_id`,`field_name`), + KEY `courseware_xmodulecontentfield_7e1499` (`field_name`), + KEY `courseware_xmodulecontentfield_1d304ded` (`usage_id`), + KEY `courseware_xmodulecontentfield_3216ff68` (`created`), + KEY `courseware_xmodulecontentfield_5436e97a` (`modified`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_admin_log`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_admin_log` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `action_time` datetime NOT NULL, + `user_id` int(11) NOT NULL, + `content_type_id` int(11) DEFAULT NULL, + `object_id` longtext, + `object_repr` varchar(200) NOT NULL, + `action_flag` smallint(5) unsigned NOT NULL, + `change_message` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `django_admin_log_fbfc09f1` (`user_id`), + KEY `django_admin_log_e4470c6e` (`content_type_id`), + CONSTRAINT `content_type_id_refs_id_288599e6` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `user_id_refs_id_c8665aa` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_comment_client_permission`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comment_client_permission` ( + `name` varchar(30) NOT NULL, + PRIMARY KEY (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_comment_client_permission_roles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comment_client_permission_roles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `permission_id` varchar(30) NOT NULL, + `role_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `django_comment_client_permi_permission_id_7a766da089425952_uniq` (`permission_id`,`role_id`), + KEY `django_comment_client_permission_roles_1e014c8f` (`permission_id`), + KEY `django_comment_client_permission_roles_bf07f040` (`role_id`), + CONSTRAINT `role_id_refs_id_6ccffe4ec1b5c854` FOREIGN KEY (`role_id`) REFERENCES `django_comment_client_role` (`id`), + CONSTRAINT `permission_id_refs_name_63b5ab82b6302d27` FOREIGN KEY (`permission_id`) REFERENCES `django_comment_client_permission` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_comment_client_role`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comment_client_role` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(30) NOT NULL, + `course_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `django_comment_client_role_ff48d8e5` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_comment_client_role_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_comment_client_role_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `role_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `django_comment_client_role_users_role_id_78e483f531943614_uniq` (`role_id`,`user_id`), + KEY `django_comment_client_role_users_bf07f040` (`role_id`), + KEY `django_comment_client_role_users_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_60d02531441b79e7` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `role_id_refs_id_282d08d1ab82c838` FOREIGN KEY (`role_id`) REFERENCES `django_comment_client_role` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_content_type`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_content_type` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `app_label` varchar(100) NOT NULL, + `model` varchar(100) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `app_label` (`app_label`,`model`) +) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_openid_auth_association`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_openid_auth_association` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `server_url` longtext NOT NULL, + `handle` varchar(255) NOT NULL, + `secret` longtext NOT NULL, + `issued` int(11) NOT NULL, + `lifetime` int(11) NOT NULL, + `assoc_type` longtext NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_openid_auth_nonce`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_openid_auth_nonce` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `server_url` varchar(2047) NOT NULL, + `timestamp` int(11) NOT NULL, + `salt` varchar(40) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_openid_auth_useropenid`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_openid_auth_useropenid` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `claimed_id` longtext NOT NULL, + `display_id` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `django_openid_auth_useropenid_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_be7162f0` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_session`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_session` ( + `session_key` varchar(40) NOT NULL, + `session_data` longtext NOT NULL, + `expire_date` datetime NOT NULL, + PRIMARY KEY (`session_key`), + KEY `django_session_c25c2c28` (`expire_date`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `django_site`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `django_site` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `domain` varchar(100) NOT NULL, + `name` varchar(50) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `djcelery_crontabschedule`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `djcelery_crontabschedule` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `minute` varchar(64) NOT NULL, + `hour` varchar(64) NOT NULL, + `day_of_week` varchar(64) NOT NULL, + `day_of_month` varchar(64) NOT NULL, + `month_of_year` varchar(64) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `djcelery_intervalschedule`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `djcelery_intervalschedule` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `every` int(11) NOT NULL, + `period` varchar(24) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `djcelery_periodictask`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `djcelery_periodictask` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `task` varchar(200) NOT NULL, + `interval_id` int(11) DEFAULT NULL, + `crontab_id` int(11) DEFAULT NULL, + `args` longtext NOT NULL, + `kwargs` longtext NOT NULL, + `queue` varchar(200) DEFAULT NULL, + `exchange` varchar(200) DEFAULT NULL, + `routing_key` varchar(200) DEFAULT NULL, + `expires` datetime DEFAULT NULL, + `enabled` tinyint(1) NOT NULL, + `last_run_at` datetime DEFAULT NULL, + `total_run_count` int(10) unsigned NOT NULL, + `date_changed` datetime NOT NULL, + `description` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + KEY `djcelery_periodictask_17d2d99d` (`interval_id`), + KEY `djcelery_periodictask_7aa5fda` (`crontab_id`), + CONSTRAINT `interval_id_refs_id_f2054349` FOREIGN KEY (`interval_id`) REFERENCES `djcelery_intervalschedule` (`id`), + CONSTRAINT `crontab_id_refs_id_ebff5e74` FOREIGN KEY (`crontab_id`) REFERENCES `djcelery_crontabschedule` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `djcelery_periodictasks`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `djcelery_periodictasks` ( + `ident` smallint(6) NOT NULL, + `last_update` datetime NOT NULL, + PRIMARY KEY (`ident`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `djcelery_taskstate`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `djcelery_taskstate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `state` varchar(64) NOT NULL, + `task_id` varchar(36) NOT NULL, + `name` varchar(200) DEFAULT NULL, + `tstamp` datetime NOT NULL, + `args` longtext, + `kwargs` longtext, + `eta` datetime DEFAULT NULL, + `expires` datetime DEFAULT NULL, + `result` longtext, + `traceback` longtext, + `runtime` double DEFAULT NULL, + `retries` int(11) NOT NULL, + `worker_id` int(11) DEFAULT NULL, + `hidden` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `task_id` (`task_id`), + KEY `djcelery_taskstate_355bfc27` (`state`), + KEY `djcelery_taskstate_52094d6e` (`name`), + KEY `djcelery_taskstate_f0ba6500` (`tstamp`), + KEY `djcelery_taskstate_20fc5b84` (`worker_id`), + KEY `djcelery_taskstate_c91f1bf` (`hidden`), + CONSTRAINT `worker_id_refs_id_4e3453a` FOREIGN KEY (`worker_id`) REFERENCES `djcelery_workerstate` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `djcelery_workerstate`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `djcelery_workerstate` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `hostname` varchar(255) NOT NULL, + `last_heartbeat` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `hostname` (`hostname`), + KEY `djcelery_workerstate_eb8ac7e4` (`last_heartbeat`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `external_auth_externalauthmap`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `external_auth_externalauthmap` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `external_id` varchar(255) NOT NULL, + `external_domain` varchar(255) NOT NULL, + `external_credentials` longtext NOT NULL, + `external_email` varchar(255) NOT NULL, + `external_name` varchar(255) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `internal_password` varchar(31) NOT NULL, + `dtcreated` datetime NOT NULL, + `dtsignup` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `external_auth_externalauthmap_external_id_7f035ef8bc4d313e_uniq` (`external_id`,`external_domain`), + UNIQUE KEY `user_id` (`user_id`), + KEY `external_auth_externalauthmap_d5e787` (`external_id`), + KEY `external_auth_externalauthmap_a570024c` (`external_domain`), + KEY `external_auth_externalauthmap_a142061d` (`external_email`), + KEY `external_auth_externalauthmap_c1a016f` (`external_name`), + CONSTRAINT `user_id_refs_id_39c4e675f8635f67` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `foldit_puzzlecomplete`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `foldit_puzzlecomplete` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `unique_user_id` varchar(50) NOT NULL, + `puzzle_id` int(11) NOT NULL, + `puzzle_set` int(11) NOT NULL, + `puzzle_subset` int(11) NOT NULL, + `created` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `foldit_puzzlecomplete_user_id_4c63656af6674331_uniq` (`user_id`,`puzzle_id`,`puzzle_set`,`puzzle_subset`), + KEY `foldit_puzzlecomplete_fbfc09f1` (`user_id`), + KEY `foldit_puzzlecomplete_8027477e` (`unique_user_id`), + KEY `foldit_puzzlecomplete_4798a2b8` (`puzzle_set`), + KEY `foldit_puzzlecomplete_59f06bcd` (`puzzle_subset`), + CONSTRAINT `user_id_refs_id_23bb09ab37e9437b` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `foldit_score`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `foldit_score` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `unique_user_id` varchar(50) NOT NULL, + `puzzle_id` int(11) NOT NULL, + `best_score` double NOT NULL, + `current_score` double NOT NULL, + `score_version` int(11) NOT NULL, + `created` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `foldit_score_fbfc09f1` (`user_id`), + KEY `foldit_score_8027477e` (`unique_user_id`), + KEY `foldit_score_3624c060` (`best_score`), + KEY `foldit_score_b4627792` (`current_score`), + CONSTRAINT `user_id_refs_id_44efb56f4c07957f` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `instructor_task_instructortask`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `instructor_task_instructortask` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `task_type` varchar(50) NOT NULL, + `course_id` varchar(255) NOT NULL, + `task_key` varchar(255) NOT NULL, + `task_input` varchar(255) NOT NULL, + `task_id` varchar(255) NOT NULL, + `task_state` varchar(50) DEFAULT NULL, + `task_output` varchar(1024) DEFAULT NULL, + `requester_id` int(11) NOT NULL, + `created` datetime DEFAULT NULL, + `updated` datetime NOT NULL, + `subtasks` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `instructor_task_instructortask_8ae638b4` (`task_type`), + KEY `instructor_task_instructortask_ff48d8e5` (`course_id`), + KEY `instructor_task_instructortask_cfc55170` (`task_key`), + KEY `instructor_task_instructortask_c00fe455` (`task_id`), + KEY `instructor_task_instructortask_731e67a4` (`task_state`), + KEY `instructor_task_instructortask_b8ca8b9f` (`requester_id`), + CONSTRAINT `requester_id_refs_id_4d6b69c6a97278e6` FOREIGN KEY (`requester_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `licenses_coursesoftware`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `licenses_coursesoftware` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) NOT NULL, + `full_name` varchar(255) NOT NULL, + `url` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `licenses_userlicense`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `licenses_userlicense` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `software_id` int(11) NOT NULL, + `user_id` int(11) DEFAULT NULL, + `serial` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + KEY `licenses_userlicense_4c6ed3c1` (`software_id`), + KEY `licenses_userlicense_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_26345de02f3a1cb3` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `software_id_refs_id_78738fcdf9e27be8` FOREIGN KEY (`software_id`) REFERENCES `licenses_coursesoftware` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `linkedin_linkedin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `linkedin_linkedin` ( + `user_id` int(11) NOT NULL, + `has_linkedin_account` tinyint(1) DEFAULT NULL, + `emailed_courses` longtext NOT NULL, + PRIMARY KEY (`user_id`), + CONSTRAINT `user_id_refs_id_7b29e97d72e31bb2` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `notes_note`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notes_note` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `uri` varchar(255) NOT NULL, + `text` longtext NOT NULL, + `quote` longtext NOT NULL, + `range_start` varchar(2048) NOT NULL, + `range_start_offset` int(11) NOT NULL, + `range_end` varchar(2048) NOT NULL, + `range_end_offset` int(11) NOT NULL, + `tags` longtext NOT NULL, + `created` datetime DEFAULT NULL, + `updated` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `notes_note_fbfc09f1` (`user_id`), + KEY `notes_note_ff48d8e5` (`course_id`), + KEY `notes_note_a9794fa` (`uri`), + KEY `notes_note_3216ff68` (`created`), + KEY `notes_note_8aac229` (`updated`), + CONSTRAINT `user_id_refs_id_380a4734360715cc` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `notifications_articlesubscription`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notifications_articlesubscription` ( + `subscription_ptr_id` int(11) NOT NULL, + `articleplugin_ptr_id` int(11) NOT NULL, + PRIMARY KEY (`articleplugin_ptr_id`), + UNIQUE KEY `subscription_ptr_id` (`subscription_ptr_id`), + CONSTRAINT `articleplugin_ptr_id_refs_id_1bd08ac071ed584a` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`), + CONSTRAINT `subscription_ptr_id_refs_id_18f7bae575c0b518` FOREIGN KEY (`subscription_ptr_id`) REFERENCES `notify_subscription` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `notify_notification`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notify_notification` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `subscription_id` int(11) DEFAULT NULL, + `message` longtext NOT NULL, + `url` varchar(200) DEFAULT NULL, + `is_viewed` tinyint(1) NOT NULL, + `is_emailed` tinyint(1) NOT NULL, + `created` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `notify_notification_104f5ac1` (`subscription_id`), + CONSTRAINT `subscription_id_refs_id_7a99ebc5baf93d4f` FOREIGN KEY (`subscription_id`) REFERENCES `notify_subscription` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `notify_notificationtype`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notify_notificationtype` ( + `key` varchar(128) NOT NULL, + `label` varchar(128) DEFAULT NULL, + `content_type_id` int(11) DEFAULT NULL, + PRIMARY KEY (`key`), + KEY `notify_notificationtype_e4470c6e` (`content_type_id`), + CONSTRAINT `content_type_id_refs_id_4919de6f2478378` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `notify_settings`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notify_settings` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `interval` smallint(6) NOT NULL, + PRIMARY KEY (`id`), + KEY `notify_settings_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_2e6a6a1d9a2911e6` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `notify_subscription`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `notify_subscription` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `settings_id` int(11) NOT NULL, + `notification_type_id` varchar(128) NOT NULL, + `object_id` varchar(64) DEFAULT NULL, + `send_emails` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + KEY `notify_subscription_83326d99` (`settings_id`), + KEY `notify_subscription_9955f091` (`notification_type_id`), + CONSTRAINT `notification_type_id_refs_key_25426c9bbaa41a19` FOREIGN KEY (`notification_type_id`) REFERENCES `notify_notificationtype` (`key`), + CONSTRAINT `settings_id_refs_id_2b8d6d653b7225d5` FOREIGN KEY (`settings_id`) REFERENCES `notify_settings` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `psychometrics_psychometricdata`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `psychometrics_psychometricdata` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `studentmodule_id` int(11) NOT NULL, + `done` tinyint(1) NOT NULL, + `attempts` int(11) NOT NULL, + `checktimes` longtext, + PRIMARY KEY (`id`), + UNIQUE KEY `studentmodule_id` (`studentmodule_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `shoppingcart_certificateitem`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shoppingcart_certificateitem` ( + `orderitem_ptr_id` int(11) NOT NULL, + `course_id` varchar(128) NOT NULL, + `course_enrollment_id` int(11) NOT NULL, + `mode` varchar(50) NOT NULL, + PRIMARY KEY (`orderitem_ptr_id`), + KEY `shoppingcart_certificateitem_ff48d8e5` (`course_id`), + KEY `shoppingcart_certificateitem_9e513f0b` (`course_enrollment_id`), + KEY `shoppingcart_certificateitem_4160619e` (`mode`), + CONSTRAINT `course_enrollment_id_refs_id_259181e58048c435` FOREIGN KEY (`course_enrollment_id`) REFERENCES `student_courseenrollment` (`id`), + CONSTRAINT `orderitem_ptr_id_refs_id_4d598262d3ebc4d0` FOREIGN KEY (`orderitem_ptr_id`) REFERENCES `shoppingcart_orderitem` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `shoppingcart_order`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shoppingcart_order` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `currency` varchar(8) NOT NULL, + `status` varchar(32) NOT NULL, + `purchase_time` datetime DEFAULT NULL, + `bill_to_first` varchar(64) NOT NULL, + `bill_to_last` varchar(64) NOT NULL, + `bill_to_street1` varchar(128) NOT NULL, + `bill_to_street2` varchar(128) NOT NULL, + `bill_to_city` varchar(64) NOT NULL, + `bill_to_state` varchar(8) NOT NULL, + `bill_to_postalcode` varchar(16) NOT NULL, + `bill_to_country` varchar(64) NOT NULL, + `bill_to_ccnum` varchar(8) NOT NULL, + `bill_to_cardtype` varchar(32) NOT NULL, + `processor_reply_dump` longtext NOT NULL, + `refunded_time` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `shoppingcart_order_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_a4b0342e1195673` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `shoppingcart_orderitem`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shoppingcart_orderitem` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `order_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `status` varchar(32) NOT NULL, + `qty` int(11) NOT NULL, + `unit_cost` decimal(30,2) NOT NULL, + `line_desc` varchar(1024) NOT NULL, + `currency` varchar(8) NOT NULL, + `fulfilled_time` datetime DEFAULT NULL, + `report_comments` longtext NOT NULL, + `refund_requested_time` datetime DEFAULT NULL, + `service_fee` decimal(30,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `shoppingcart_orderitem_8337030b` (`order_id`), + KEY `shoppingcart_orderitem_fbfc09f1` (`user_id`), + KEY `shoppingcart_orderitem_c9ad71dd` (`status`), + KEY `shoppingcart_orderitem_8457f26a` (`fulfilled_time`), + KEY `shoppingcart_orderitem_416112c1` (`refund_requested_time`), + CONSTRAINT `order_id_refs_id_4fad6e867c77b3f0` FOREIGN KEY (`order_id`) REFERENCES `shoppingcart_order` (`id`), + CONSTRAINT `user_id_refs_id_608b9042d92ae410` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `shoppingcart_paidcourseregistration`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shoppingcart_paidcourseregistration` ( + `orderitem_ptr_id` int(11) NOT NULL, + `course_id` varchar(128) NOT NULL, + `mode` varchar(50) NOT NULL, + PRIMARY KEY (`orderitem_ptr_id`), + KEY `shoppingcart_paidcourseregistration_ff48d8e5` (`course_id`), + KEY `shoppingcart_paidcourseregistration_4160619e` (`mode`), + CONSTRAINT `orderitem_ptr_id_refs_id_c5c6141d8709d99` FOREIGN KEY (`orderitem_ptr_id`) REFERENCES `shoppingcart_orderitem` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `shoppingcart_paidcourseregistrationannotation`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `shoppingcart_paidcourseregistrationannotation` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `course_id` varchar(128) NOT NULL, + `annotation` longtext, + PRIMARY KEY (`id`), + UNIQUE KEY `course_id` (`course_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `south_migrationhistory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `south_migrationhistory` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `app_name` varchar(255) NOT NULL, + `migration` varchar(255) NOT NULL, + `applied` datetime NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_anonymoususerid`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_anonymoususerid` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `anonymous_user_id` varchar(32) NOT NULL, + `course_id` varchar(255) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `anonymous_user_id` (`anonymous_user_id`), + KEY `student_anonymoususerid_fbfc09f1` (`user_id`), + KEY `student_anonymoususerid_ff48d8e5` (`course_id`), + CONSTRAINT `user_id_refs_id_23effb36c38f7a2a` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_courseenrollment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_courseenrollment` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `course_id` varchar(255) NOT NULL, + `created` datetime DEFAULT NULL, + `is_active` tinyint(1) NOT NULL, + `mode` varchar(100) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `student_courseenrollment_user_id_2d2a572f07dd8e37_uniq` (`user_id`,`course_id`), + KEY `student_courseenrollment_fbfc09f1` (`user_id`), + KEY `student_courseenrollment_ff48d8e5` (`course_id`), + KEY `student_courseenrollment_3216ff68` (`created`), + CONSTRAINT `user_id_refs_id_45948fcded37bc9d` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_courseenrollmentallowed`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_courseenrollmentallowed` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `email` varchar(255) NOT NULL, + `course_id` varchar(255) NOT NULL, + `created` datetime DEFAULT NULL, + `auto_enroll` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `student_courseenrollmentallowed_email_6f3eafd4a6c58591_uniq` (`email`,`course_id`), + KEY `student_courseenrollmentallowed_3904588a` (`email`), + KEY `student_courseenrollmentallowed_ff48d8e5` (`course_id`), + KEY `student_courseenrollmentallowed_3216ff68` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_pendingemailchange`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_pendingemailchange` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `new_email` varchar(255) NOT NULL, + `activation_key` varchar(32) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + UNIQUE KEY `activation_key` (`activation_key`), + KEY `student_pendingemailchange_856c86d7` (`new_email`), + CONSTRAINT `user_id_refs_id_24fa3bcda525fa67` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_pendingnamechange`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_pendingnamechange` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `new_name` varchar(255) NOT NULL, + `rationale` varchar(1024) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + CONSTRAINT `user_id_refs_id_24e959cdd9359b27` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_userstanding`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_userstanding` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `account_status` varchar(31) NOT NULL, + `changed_by_id` int(11) NOT NULL, + `standing_last_changed_at` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_id` (`user_id`), + KEY `student_userstanding_16905482` (`changed_by_id`), + CONSTRAINT `changed_by_id_refs_id_5ec33b2b0450a33b` FOREIGN KEY (`changed_by_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `user_id_refs_id_5ec33b2b0450a33b` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_usertestgroup`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_usertestgroup` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(32) NOT NULL, + `description` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `student_usertestgroup_52094d6e` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `student_usertestgroup_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `student_usertestgroup_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `usertestgroup_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `student_usertestgroup_us_usertestgroup_id_63c588e0372991b0_uniq` (`usertestgroup_id`,`user_id`), + KEY `student_usertestgroup_users_44f27cdf` (`usertestgroup_id`), + KEY `student_usertestgroup_users_fbfc09f1` (`user_id`), + CONSTRAINT `usertestgroup_id_refs_id_78e186d36d724f9e` FOREIGN KEY (`usertestgroup_id`) REFERENCES `student_usertestgroup` (`id`), + CONSTRAINT `user_id_refs_id_412b14bf8947584c` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `track_trackinglog`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `track_trackinglog` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `dtcreated` datetime NOT NULL, + `username` varchar(32) NOT NULL, + `ip` varchar(32) NOT NULL, + `event_source` varchar(32) NOT NULL, + `event_type` varchar(512) NOT NULL, + `event` longtext NOT NULL, + `agent` varchar(256) NOT NULL, + `page` varchar(512) DEFAULT NULL, + `time` datetime NOT NULL, + `host` varchar(64) NOT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `user_api_userpreference`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `user_api_userpreference` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `user_id` int(11) NOT NULL, + `key` varchar(255) NOT NULL, + `value` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `user_api_userpreference_user_id_4e4942d73f760072_uniq` (`user_id`,`key`), + KEY `user_api_userpreference_fbfc09f1` (`user_id`), + KEY `user_api_userpreference_45544485` (`key`), + CONSTRAINT `user_id_refs_id_2839c1f4f3473b9e` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `verify_student_softwaresecurephotoverification`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `verify_student_softwaresecurephotoverification` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `status` varchar(100) NOT NULL, + `status_changed` datetime NOT NULL, + `user_id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `face_image_url` varchar(255) NOT NULL, + `photo_id_image_url` varchar(255) NOT NULL, + `receipt_id` varchar(255) NOT NULL, + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `submitted_at` datetime DEFAULT NULL, + `reviewing_user_id` int(11) DEFAULT NULL, + `reviewing_service` varchar(255) NOT NULL, + `error_msg` longtext NOT NULL, + `error_code` varchar(50) NOT NULL, + `photo_id_key` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `verify_student_softwaresecurephotoverification_fbfc09f1` (`user_id`), + KEY `verify_student_softwaresecurephotoverification_8713c555` (`receipt_id`), + KEY `verify_student_softwaresecurephotoverification_3b1c9c31` (`created_at`), + KEY `verify_student_softwaresecurephotoverification_f84f7de6` (`updated_at`), + KEY `verify_student_softwaresecurephotoverification_4452d192` (`submitted_at`), + KEY `verify_student_softwaresecurephotoverification_b2c165b4` (`reviewing_user_id`), + CONSTRAINT `reviewing_user_id_refs_id_5b90d52ad6ea4207` FOREIGN KEY (`reviewing_user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `user_id_refs_id_5b90d52ad6ea4207` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `waffle_flag`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `waffle_flag` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `everyone` tinyint(1) DEFAULT NULL, + `percent` decimal(3,1) DEFAULT NULL, + `superusers` tinyint(1) NOT NULL, + `staff` tinyint(1) NOT NULL, + `authenticated` tinyint(1) NOT NULL, + `rollout` tinyint(1) NOT NULL, + `note` longtext NOT NULL, + `testing` tinyint(1) NOT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + `languages` longtext NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + KEY `waffle_flag_3216ff68` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `waffle_flag_groups`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `waffle_flag_groups` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `flag_id` int(11) NOT NULL, + `group_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `waffle_flag_groups_flag_id_582896076571ab8b_uniq` (`flag_id`,`group_id`), + KEY `waffle_flag_groups_9bca17e2` (`flag_id`), + KEY `waffle_flag_groups_bda51c3c` (`group_id`), + CONSTRAINT `group_id_refs_id_66545bd34ea49f34` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `flag_id_refs_id_6f1b152a8e6a807d` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `waffle_flag_users`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `waffle_flag_users` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `flag_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `waffle_flag_users_flag_id_3bb77386107938a3_uniq` (`flag_id`,`user_id`), + KEY `waffle_flag_users_9bca17e2` (`flag_id`), + KEY `waffle_flag_users_fbfc09f1` (`user_id`), + CONSTRAINT `user_id_refs_id_1fe1cfb8bae2dfc2` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`), + CONSTRAINT `flag_id_refs_id_5034023d8fef0c12` FOREIGN KEY (`flag_id`) REFERENCES `waffle_flag` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `waffle_sample`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `waffle_sample` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `percent` decimal(4,1) NOT NULL, + `note` longtext NOT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + KEY `waffle_sample_3216ff68` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `waffle_switch`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `waffle_switch` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `active` tinyint(1) NOT NULL, + `note` longtext NOT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + KEY `waffle_switch_3216ff68` (`created`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_article`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_article` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `current_revision_id` int(11) DEFAULT NULL, + `created` datetime NOT NULL, + `modified` datetime NOT NULL, + `owner_id` int(11) DEFAULT NULL, + `group_id` int(11) DEFAULT NULL, + `group_read` tinyint(1) NOT NULL, + `group_write` tinyint(1) NOT NULL, + `other_read` tinyint(1) NOT NULL, + `other_write` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `current_revision_id` (`current_revision_id`), + KEY `wiki_article_5d52dd10` (`owner_id`), + KEY `wiki_article_bda51c3c` (`group_id`), + CONSTRAINT `group_id_refs_id_10e2d3dd108bfee4` FOREIGN KEY (`group_id`) REFERENCES `auth_group` (`id`), + CONSTRAINT `current_revision_id_refs_id_1d8d320ebafac304` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_articlerevision` (`id`), + CONSTRAINT `owner_id_refs_id_18073b359e14b583` FOREIGN KEY (`owner_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_articleforobject`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_articleforobject` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `article_id` int(11) NOT NULL, + `content_type_id` int(11) NOT NULL, + `object_id` int(10) unsigned NOT NULL, + `is_mptt` tinyint(1) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `wiki_articleforobject_content_type_id_27c4cce189b3bcab_uniq` (`content_type_id`,`object_id`), + KEY `wiki_articleforobject_30525a19` (`article_id`), + KEY `wiki_articleforobject_e4470c6e` (`content_type_id`), + CONSTRAINT `content_type_id_refs_id_6b30567037828764` FOREIGN KEY (`content_type_id`) REFERENCES `django_content_type` (`id`), + CONSTRAINT `article_id_refs_id_1698e37305099436` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_articleplugin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_articleplugin` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `article_id` int(11) NOT NULL, + `deleted` tinyint(1) NOT NULL, + `created` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `wiki_articleplugin_30525a19` (`article_id`), + CONSTRAINT `article_id_refs_id_64fa106f92c648ca` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_articlerevision`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_articlerevision` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `revision_number` int(11) NOT NULL, + `user_message` longtext NOT NULL, + `automatic_log` longtext NOT NULL, + `ip_address` char(15) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `modified` datetime NOT NULL, + `created` datetime NOT NULL, + `previous_revision_id` int(11) DEFAULT NULL, + `deleted` tinyint(1) NOT NULL, + `locked` tinyint(1) NOT NULL, + `article_id` int(11) NOT NULL, + `content` longtext NOT NULL, + `title` varchar(512) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `wiki_articlerevision_article_id_4b4e7910c8e7b2d0_uniq` (`article_id`,`revision_number`), + KEY `wiki_articlerevision_fbfc09f1` (`user_id`), + KEY `wiki_articlerevision_49bc38cc` (`previous_revision_id`), + KEY `wiki_articlerevision_30525a19` (`article_id`), + CONSTRAINT `article_id_refs_id_5a3b45ce5c88570a` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), + CONSTRAINT `previous_revision_id_refs_id_7c6fe338a951e36b` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_articlerevision` (`id`), + CONSTRAINT `user_id_refs_id_672c6e4dfbb26714` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_articlesubscription`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_articlesubscription` ( + `subscription_ptr_id` int(11) NOT NULL, + `articleplugin_ptr_id` int(11) NOT NULL, + PRIMARY KEY (`articleplugin_ptr_id`), + UNIQUE KEY `subscription_ptr_id` (`subscription_ptr_id`), + CONSTRAINT `articleplugin_ptr_id_refs_id_7b2f9df4cbce00e3` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`), + CONSTRAINT `subscription_ptr_id_refs_id_4ec3f6dbae89f475` FOREIGN KEY (`subscription_ptr_id`) REFERENCES `notify_subscription` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_attachment`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_attachment` ( + `reusableplugin_ptr_id` int(11) NOT NULL, + `current_revision_id` int(11) DEFAULT NULL, + `original_filename` varchar(256) DEFAULT NULL, + PRIMARY KEY (`reusableplugin_ptr_id`), + UNIQUE KEY `current_revision_id` (`current_revision_id`), + CONSTRAINT `current_revision_id_refs_id_66561e6e2198feb4` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_attachmentrevision` (`id`), + CONSTRAINT `reusableplugin_ptr_id_refs_articleplugin_ptr_id_79d179a16644e87a` FOREIGN KEY (`reusableplugin_ptr_id`) REFERENCES `wiki_reusableplugin` (`articleplugin_ptr_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_attachmentrevision`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_attachmentrevision` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `revision_number` int(11) NOT NULL, + `user_message` longtext NOT NULL, + `automatic_log` longtext NOT NULL, + `ip_address` char(15) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `modified` datetime NOT NULL, + `created` datetime NOT NULL, + `previous_revision_id` int(11) DEFAULT NULL, + `deleted` tinyint(1) NOT NULL, + `locked` tinyint(1) NOT NULL, + `attachment_id` int(11) NOT NULL, + `file` varchar(100) NOT NULL, + `description` longtext NOT NULL, + PRIMARY KEY (`id`), + KEY `wiki_attachmentrevision_fbfc09f1` (`user_id`), + KEY `wiki_attachmentrevision_49bc38cc` (`previous_revision_id`), + KEY `wiki_attachmentrevision_edee6011` (`attachment_id`), + CONSTRAINT `attachment_id_refs_reusableplugin_ptr_id_33d8cf1f640583da` FOREIGN KEY (`attachment_id`) REFERENCES `wiki_attachment` (`reusableplugin_ptr_id`), + CONSTRAINT `previous_revision_id_refs_id_5521ecec0041bbf5` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_attachmentrevision` (`id`), + CONSTRAINT `user_id_refs_id_2822eb682eaca84c` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_image`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_image` ( + `revisionplugin_ptr_id` int(11) NOT NULL, + PRIMARY KEY (`revisionplugin_ptr_id`), + CONSTRAINT `revisionplugin_ptr_id_refs_articleplugin_ptr_id_1a20f885fc42a0b1` FOREIGN KEY (`revisionplugin_ptr_id`) REFERENCES `wiki_revisionplugin` (`articleplugin_ptr_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_imagerevision`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_imagerevision` ( + `revisionpluginrevision_ptr_id` int(11) NOT NULL, + `image` varchar(2000) DEFAULT NULL, + `width` smallint(6) DEFAULT NULL, + `height` smallint(6) DEFAULT NULL, + PRIMARY KEY (`revisionpluginrevision_ptr_id`), + CONSTRAINT `revisionpluginrevision_ptr_id_refs_id_5da3ee545b9fc791` FOREIGN KEY (`revisionpluginrevision_ptr_id`) REFERENCES `wiki_revisionpluginrevision` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_reusableplugin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_reusableplugin` ( + `articleplugin_ptr_id` int(11) NOT NULL, + PRIMARY KEY (`articleplugin_ptr_id`), + CONSTRAINT `articleplugin_ptr_id_refs_id_2a5c48de4ca661fd` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_reusableplugin_articles`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_reusableplugin_articles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `reusableplugin_id` int(11) NOT NULL, + `article_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `wiki_reusableplugin_art_reusableplugin_id_6e34ac94afa8f9f2_uniq` (`reusableplugin_id`,`article_id`), + KEY `wiki_reusableplugin_articles_28b0b358` (`reusableplugin_id`), + KEY `wiki_reusableplugin_articles_30525a19` (`article_id`), + CONSTRAINT `article_id_refs_id_854477c2f51faad` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), + CONSTRAINT `reusableplugin_id_refs_articleplugin_ptr_id_496cabe744b45e30` FOREIGN KEY (`reusableplugin_id`) REFERENCES `wiki_reusableplugin` (`articleplugin_ptr_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_revisionplugin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_revisionplugin` ( + `articleplugin_ptr_id` int(11) NOT NULL, + `current_revision_id` int(11) DEFAULT NULL, + PRIMARY KEY (`articleplugin_ptr_id`), + UNIQUE KEY `current_revision_id` (`current_revision_id`), + CONSTRAINT `current_revision_id_refs_id_2732d4b244938e26` FOREIGN KEY (`current_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`), + CONSTRAINT `articleplugin_ptr_id_refs_id_2b8f815fcac31401` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_revisionpluginrevision`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_revisionpluginrevision` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `revision_number` int(11) NOT NULL, + `user_message` longtext NOT NULL, + `automatic_log` longtext NOT NULL, + `ip_address` char(15) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `modified` datetime NOT NULL, + `created` datetime NOT NULL, + `previous_revision_id` int(11) DEFAULT NULL, + `deleted` tinyint(1) NOT NULL, + `locked` tinyint(1) NOT NULL, + `plugin_id` int(11) NOT NULL, + PRIMARY KEY (`id`), + KEY `wiki_revisionpluginrevision_fbfc09f1` (`user_id`), + KEY `wiki_revisionpluginrevision_49bc38cc` (`previous_revision_id`), + KEY `wiki_revisionpluginrevision_2857ccbf` (`plugin_id`), + CONSTRAINT `plugin_id_refs_articleplugin_ptr_id_3e044eb541bbc69c` FOREIGN KEY (`plugin_id`) REFERENCES `wiki_revisionplugin` (`articleplugin_ptr_id`), + CONSTRAINT `previous_revision_id_refs_id_3348918678fffe43` FOREIGN KEY (`previous_revision_id`) REFERENCES `wiki_revisionpluginrevision` (`id`), + CONSTRAINT `user_id_refs_id_21540d2c32d8f395` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_simpleplugin`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_simpleplugin` ( + `articleplugin_ptr_id` int(11) NOT NULL, + `article_revision_id` int(11) NOT NULL, + PRIMARY KEY (`articleplugin_ptr_id`), + KEY `wiki_simpleplugin_b3dc49fe` (`article_revision_id`), + CONSTRAINT `article_revision_id_refs_id_2252033b6df37b12` FOREIGN KEY (`article_revision_id`) REFERENCES `wiki_articlerevision` (`id`), + CONSTRAINT `articleplugin_ptr_id_refs_id_6704e8c7a25cbfd2` FOREIGN KEY (`articleplugin_ptr_id`) REFERENCES `wiki_articleplugin` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `wiki_urlpath`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `wiki_urlpath` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `slug` varchar(50) DEFAULT NULL, + `site_id` int(11) NOT NULL, + `parent_id` int(11) DEFAULT NULL, + `lft` int(10) unsigned NOT NULL, + `rght` int(10) unsigned NOT NULL, + `tree_id` int(10) unsigned NOT NULL, + `level` int(10) unsigned NOT NULL, + `article_id` int(11) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + UNIQUE KEY `wiki_urlpath_site_id_124f6aa7b2cc9b82_uniq` (`site_id`,`parent_id`,`slug`), + KEY `wiki_urlpath_a951d5d6` (`slug`), + KEY `wiki_urlpath_6223029` (`site_id`), + KEY `wiki_urlpath_63f17a16` (`parent_id`), + KEY `wiki_urlpath_42b06ff6` (`lft`), + KEY `wiki_urlpath_91543e5a` (`rght`), + KEY `wiki_urlpath_efd07f28` (`tree_id`), + KEY `wiki_urlpath_2a8f42e8` (`level`), + KEY `wiki_urlpath_30525a19` (`article_id`), + CONSTRAINT `article_id_refs_id_23bd80e7971759c9` FOREIGN KEY (`article_id`) REFERENCES `wiki_article` (`id`), + CONSTRAINT `parent_id_refs_id_62afe7c752d1e703` FOREIGN KEY (`parent_id`) REFERENCES `wiki_urlpath` (`id`), + CONSTRAINT `site_id_refs_id_462d2bc7f4bbaaa2` FOREIGN KEY (`site_id`) REFERENCES `django_site` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + diff --git a/common/test/db_cache/lettuce.db b/common/test/db_cache/lettuce.db new file mode 100644 index 0000000000000000000000000000000000000000..9d6cb8dc47969c39b85cd149c684983d4b543a5c GIT binary patch literal 389120 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 [ diff --git a/rakelib/bok_choy.rake b/rakelib/bok_choy.rake index bd64e36173..5735155b40 100644 --- a/rakelib/bok_choy.rake +++ b/rakelib/bok_choy.rake @@ -150,17 +150,8 @@ namespace :'test:bok_choy' do # Invalidate the cache BOK_CHOY_CACHE.flush() - # HACK: Since the CMS depends on the existence of some database tables - # that are now in common but used to be in LMS (Role/Permissions for Forums) - # we need to create/migrate the database tables defined in the LMS. - # We might be able to address this by moving out the migrations from - # lms/django_comment_client, but then we'd have to repair all the existing - # migrations from the upgrade tables in the DB. - # But for now for either system (lms or cms), use the lms - # definitions to sync and migrate. - sh(django_admin('lms', 'bok_choy', 'reset_db', '--noinput')) - sh(django_admin('lms', 'bok_choy', 'syncdb', '--noinput')) - sh(django_admin('lms', 'bok_choy', 'migrate', '--noinput')) + # Reset the database + sh("#{REPO_ROOT}/scripts/reset-test-db.sh") # Collect static assets Rake::Task["gather_assets"].invoke('lms', 'bok_choy') diff --git a/scripts/reset-test-db.sh b/scripts/reset-test-db.sh new file mode 100755 index 0000000000..a0808c208a --- /dev/null +++ b/scripts/reset-test-db.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +############################################################################ +# +# reset-test-db.sh +# +# Resets the MySQL test database for the bok-choy acceptance tests. +# +# If it finds a cached schema and migration history, it will start +# from the cached version to speed up migrations. +# +# If no cached database exists, it will create one. This can be +# checked into the repo to speed up future tests. +# +# Note that we do NOT want to re-use the cache between test runs! +# A newer commit could introduce migrations that do not exist +# in other commits, which could cause migrations to fail in the other +# commits. +# +# For this reason, we always use a cache that was committed to master +# at the time the branch was created. +# +############################################################################ + +DB_CACHE_DIR="common/test/db_cache" + +# Clear out the test database +./manage.py lms --settings bok_choy reset_db --traceback --noinput + +# If there are cached database schemas/data, load them +if [[ -f $DB_CACHE_DIR/bok_choy_schema.sql && -f $DB_CACHE_DIR/bok_choy_data.json ]]; then + + # Load the schema, then the data (including the migration history) + mysql -u root test < $DB_CACHE_DIR/bok_choy_schema.sql + ./manage.py lms --settings bok_choy loaddata $DB_CACHE_DIR/bok_choy_data.json + + # Re-run migrations to ensure we are up-to-date + ./manage.py lms --settings bok_choy migrate --traceback --noinput + +# Otherwise, update the test database and update the cache +else + + # Clean the cache directory + rm -rf $DB_CACHE_DIR && mkdir -p $DB_CACHE_DIR + + # Re-run migrations on the test database + ./manage.py lms --settings bok_choy syncdb --traceback --noinput + ./manage.py lms --settings bok_choy migrate --traceback --noinput + + # Dump the schema and data to the cache + ./manage.py lms --settings bok_choy dumpdata > $DB_CACHE_DIR/bok_choy_data.json + mysqldump -u root --no-data --skip-comments --skip-dump-date test > $DB_CACHE_DIR/bok_choy_schema.sql +fi +