gpt4 book ai didi

mysql - 合并两个 Django 项目的用户表的最佳方式?

转载 作者:可可西里 更新时间:2023-11-01 07:29:33 25 4
gpt4 key购买 nike

我在同一台服务器上有两个 Django 项目。第一个是几个月前推出的,此后已经收集了数百个用户帐户。第二个项目将在几天后启动,我们希望第二个项目允许第一个应用程序的用户使用相同的凭据进行身份验证。

起初,我打算简单地将用户表从第一个项目转储到第二个项目中,但这不允许同步解决方案(用户在项目 B 上创建帐户,然后无法访问项目 A) .

Django 是否有某种方法可以本地切换数据库名称(因为它们在同一台服务器上)以进行用户身份验证,然后在完成身份验证后返回到原始数据库?

如果不是,您认为什么是解决我的问题的最佳方案?另外 - 我们正在使用 MySQL。

最佳答案

如果再等一段时间,Django 最终会获得多数据库支持。

但就目前而言,我认为解决您的问题的最佳方法是在对任何一个进行更改后同步两个数据库的用户表。您可以使用信号支持来处理此问题:

from django.db import models

def user_post_save(sender, instance, **kwargs):
... run script to synchronize tables ...
models.signals.post_save.connect(user_post_save, sender=User)

您将无法使用 ORM...但是转储源表,然后删除目标并导入到其中相对来说比较轻松。这肯定会导致时间问题,但交易将主要解决这个问题。如果两个站点相互踩踏是一个问题,我可能会考虑在更新期间在 User 表上设置写锁,并在 User 模型的 save() 方法(或pre_save 信号)在完成保存之前检查锁。这将保证不会在同步期间发送 post_save 信号。

关于mysql - 合并两个 Django 项目的用户表的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/341952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com