datatracker/ietf/legacy_router.py
Ole Laursen 0dabaf96fb Split database into current and legacy, adding importer to copy reused
tables from legacy to new through Django (with minimal cleaning to
have the import go through) and removing migrations from submit and
liaisons as they interfere with the clean slate of the new database,
adjusting IPR model to add null=True on fields with nulls in the
database
 - Legacy-Id: 3778
2011-12-22 18:34:19 +00:00

233 lines
5.8 KiB
Python

class LegacyRouter(object):
legacy_apps = ["idindex", "idtracker", "ietfauth", ""]
legacy_models = ["AnnouncedFrom", "AnnouncedTo", "Announcement", "ScheduledAnnouncement",
"TelechatDates"]
def db_for_read(self, model, **hints):
if model._meta.db_table in legacy_tables:
return 'legacy'
return None
def db_for_write(self, model, **hints):
if model._meta.db_table in legacy_tables:
raise Exception("You can't write to the legacy table %s" % model._meta.db_table)
return None
def allow_relation(self, obj1, obj2, **hints):
if (obj1._meta.db_table in legacy_tables) != (obj2._meta.db_table in legacy_tables):
return False
return None
def allow_syncdb(self, db, model):
if db == 'legacy':
return False
if model._meta.db_table in legacy_tables:
return False
return None
legacy_tables = set((
"acronym",
"agenda_cat",
"agenda_items",
"all_id",
"announced_from",
"announced_to",
"announcements",
"area_directors",
"area_group",
"area_status",
"areas",
"ballot_info",
"ballots",
"ballots_comment",
"ballots_discuss",
"bash_agenda",
"chairs",
"chairs_history",
"document_comments",
"draft_versions_mirror",
"dt_request",
"email_addresses",
"from_bodies",
"g_chairs",
"g_editors",
"g_secretaries",
"g_secretary",
"g_status",
"g_tech_advisors",
"g_type",
"general_info",
"goals_milestones",
"group_flag",
"group_internal",
"groups_ietf",
"hit_counter",
"id_approved_detail",
"id_authors",
"id_dates",
"id_intended_status",
"id_internal",
"id_restricted_word",
"id_status",
"id_submission_detail",
"id_submission_env",
"id_submission_status",
"idst_users",
"iesg_history",
"iesg_login",
"iesg_password",
"iesg_telechatdate",
"ietfauth_ietfuserprofile",
"ietfauth_usermap",
"ietfworkflows_annotationtag",
"ietfworkflows_annotationtagobjectrelation",
"ietfworkflows_objectannotationtaghistoryentry",
"ietfworkflows_objecthistoryentry",
"ietfworkflows_objectstreamhistoryentry",
"ietfworkflows_objectworkflowhistoryentry",
"ietfworkflows_statedescription",
"ietfworkflows_stateobjectrelationmetadata",
"ietfworkflows_stream",
"ietfworkflows_streamdelegate",
"ietfworkflows_streamedid",
"ietfworkflows_wgworkflow",
"ietfworkflows_wgworkflow_selected_states",
"ietfworkflows_wgworkflow_selected_tags",
"imported_mailing_list",
"interim_info",
"interim_meetings_acronym",
"interim_meetings_groups_ietf",
"interim_meetings_interim_info",
"interim_meetings_interim_new",
"interim_meetings_meetings",
"interim_meetings_minutes",
"interim_meetings_slides",
"internet_drafts",
"ipr_contacts",
"ipr_detail",
"ipr_ids",
"ipr_licensing",
"ipr_notifications",
"ipr_rfcs",
"ipr_selecttype",
"ipr_updates",
"irtf",
"irtf_chairs",
"liaison_detail",
"liaison_detail_temp",
"liaison_managers",
"liaison_purpose",
"liaisons_interim",
"liaisons_members",
"liaisons_outgoingliaisonapproval",
"liaisons_sdoauthorizedindividual",
"lists_email",
"lists_email_refs",
"lists_list",
"mailing_list",
"mailinglists_domain",
"mailinglists_domain_approvers",
"management_issues",
"meeting_agenda_count",
"meeting_attendees",
"meeting_conflict",
"meeting_conflict_groups",
"meeting_hours",
"meeting_rooms",
"meeting_sessionstatusname",
"meeting_times",
"meeting_venues",
"meetings",
"messages",
"migrate_stat",
"minutes",
"nomcom",
"nomcom_members",
"non_session",
"non_session_ref",
"none_wg_mailing_list",
"not_meeting_groups",
"old_document_comments",
"outstanding_tasks",
"permissions_objectpermission",
"permissions_objectpermissioninheritanceblock",
"permissions_permission",
"permissions_permission_content_types",
"permissions_principalrolerelation",
"permissions_role",
"person_or_org_info",
"phone_numbers",
"postal_addresses",
"print_name",
"prior_address",
"proceedings",
"pwg_cat",
"ref_doc_states_new",
"ref_next_states_new",
"ref_resp",
"replaced_ids",
"request",
"rfc_authors",
"rfc_editor_queue_mirror",
"rfc_editor_queue_mirror_refs",
"rfc_index_mirror",
"rfc_intend_status",
"rfc_status",
"rfcs",
"rfcs_obsolete",
"roll_call",
"scheduled_announcements",
"scheduled_announcements_temp",
"sdo_chairs",
"sdos",
"secretariat_staff",
"session_conflicts",
"session_names",
"session_request_activities",
"session_status",
"slide_types",
"slides",
"staff_work_detail",
"staff_work_history",
"sub_state",
"switches",
"task_status",
"telechat",
"telechat_dates",
"telechat_minutes",
"telechat_users",
"temp_admins",
"temp_agenda71166",
"temp_id_authors",
"temp_telechat_attendees",
"temp_txt",
"templates",
"updated_ipr",
"uploads",
"uploads_temp",
"users",
"web_gm_chairs",
"web_login_info",
"web_user_info",
"wg_agenda",
"wg_meeting_sessions",
"wg_meeting_sessions_temp",
"wg_password",
"wg_proceedings_activities",
"wg_www_pages",
"wgchairs_protowriteup",
"wgchairs_wgdelegate",
"workflows_state",
"workflows_state_transitions",
"workflows_stateinheritanceblock",
"workflows_stateobjectrelation",
"workflows_statepermissionrelation",
"workflows_transition",
"workflows_workflow",
"workflows_workflowmodelrelation",
"workflows_workflowobjectrelation",
"workflows_workflowpermissionrelation",
))