from django.core import management
import common
from autotest_lib.frontend import settings
from autotest_lib.database import db_utils
AFE_MIGRATION_NAME = '059_drone_sets_permissions'
migrations_module = __import__('autotest_lib.frontend.migrations', globals(),
locals(), [AFE_MIGRATION_NAME])
migration_059 = getattr(migrations_module, AFE_MIGRATION_NAME)
def migrate_up(manager):
"""
If the auth tables don't exist, we shouldn't try to set the permissions.
See migration 059
"""
if db_utils.auth_tables_exist(manager):
management.setup_environ(settings)
# These have to be imported after the environment is set up
from django.contrib.contenttypes import management as content_management
from django.contrib.auth import management as auth_management
from django.db import models as db_models
content_management.update_all_contenttypes()
for app in db_models.get_apps():
auth_management.create_permissions(app, None, 2)
manager.execute_script(migration_059.UP_SQL)
def migrate_down(manager):
if db_utils.auth_tables_exist(manager):
manager.execute_script(migration_059.DOWN_SQL)