Как вы переносите аутентификацию Django из Монго в SQL?(ManyRelatedManger на Mongo) - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть несколько баз данных.Устаревшая база данных Mongo db, mongo и новая база данных PostgreSQL, на которую я перехожу, sql.Я пытаюсь переместить всех пользователей и их права доступа.

В коде я уже переместил разрешения из 'mongo' в 'sql'.

users = User.objects.using('mongo').all().values('username')
for user in users:
    u = User.objects.db_manager('sql').create_user(user.username, user.email, user.password)
    # Where the ManyRelatedManager trouble begins
    # This error is "'dict' object has no attribute 'user_permissions'"
    u.user_permissions.add(user.user_permissions)
    # This error is "This query is not supported by the database." on the .all()
    old_permissions = user.user_permissions.all()
    for p in old_permissions:
         new_permission = Permission.objects.using('sql').get(name=p.name)
         u.user_permissions.add(new_permission)
         u.save()

С Mongoне любит объединения Как я могу получить доступ к объектам Permission для пользователя?

1 Ответ

1 голос
/ 05 декабря 2011

Так что, если я посмотрю в своем проекте django (sqlite3), то при синхронизации приложения auth создается 7 таблиц.Я хотел бы взглянуть на то, как каждый из них создается в стандартном приложении django

auth_group         
auth_group_permissions
auth_message
auth_permission
auth_user
auth_user_groups
auth_user_user_permissions

Если я отображу схему для них, это будет выглядеть так:эти таблицы в вашей новой БД после включения приложения авторизации, а затем итерации по документам в версии mongo.Для каждого документа заполните соответствующие таблицы в SQL-стране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...