0
我有多個數據庫。傳統的Mongo db,'mongo'和我正在遷移到的'PostgreSQL db','sql'。我正試圖移動所有用戶和他們的權限。如何將django身份驗證從mongo遷移到SQL? (Mongo上的ManyRelatedManger)
在代碼中,我已經將權限從'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對象?
我的解決方法是將所有Permssions授予超級用戶。我從來沒有正確地解決我如何訪問使用mongo的用戶的權限對象。 (對文檔進行迭代並填充到SQL-land中太模糊,無法成爲解決方案。) – user140314