def reverse_func(apps, schema_editor): if not old_uer_table_exist(): return User = apps.get_model('account', 'User') UserProperty = apps.get_model('account', 'UserProperty') db_alias = schema_editor.connection.alias with transaction.atomic(): UserProperty.objects.using(db_alias).all().delete() User.objects.using(db_alias).all().delete()
def forward_func(apps, schema_editor): if not old_uer_table_exist(): return apply_alter(reverse=False)
def reverse_func(apps, schema_editor): if not old_uer_table_exist(): return apply_alter(reverse=True)
def forward_func(apps, schema_editor): if not old_uer_table_exist(): return User = apps.get_model('account', 'User') UserProperty = apps.get_model('account', 'UserProperty') db_alias = schema_editor.connection.alias with connection.cursor() as cursor: cursor.execute('select * from %s' % getattr(settings, 'USER_TABLE', 'account_bkuser')) bk_users = dictfetchall(cursor) cursor.execute( 'select * from %s' % getattr(settings, 'USER_GROUP_TABLE', 'account_bkuser_groups')) groups = dictfetchall(cursor) cursor.execute('select * from %s' % getattr(settings, 'USER_PERMISSION_TABLE', 'account_bkuser_user_permissions')) permissions = dictfetchall(cursor) users = [] user_properties = [] for row in bk_users: try: user = User.objects.using(db_alias).get(username=row['username']) except Exception: user = User(id=row[fields_map['id']], username=row[fields_map['username']], nickname=row[fields_map['nickname']], is_staff=row[fields_map['is_staff']], is_active=True, is_superuser=row[fields_map['is_superuser']], date_joined=row[fields_map['date_joined']]) users.append(user) for key in additional_key: user_properties.append( UserProperty(user=user, key=key, value=row[key] or '')) group_values = [] for row in groups: group_values.append('(%s, %s, %s)' % (row['id'], row['bkuser_id'], row['group_id'])) permission_values = [] for row in permissions: permission_values.append( '(%s, %s, %s)' % (row['id'], row['bkuser_id'], row['permission_id'])) with transaction.atomic(): User.objects.bulk_create(users) UserProperty.objects.bulk_create(user_properties) with connection.cursor() as cursor: if group_values: cursor.execute( 'insert into `account_user_groups` (id, user_id, group_id) values %s;' % ','.join(group_values)) if permission_values: cursor.execute( 'insert into `account_user_permissions` (id, user_id, permission_id) values %s;' % ','.join(permission_values))