Python 迁移和两个应用程序在不同的计算机上共享数据库的一部分
更好的描述-现在在新的部分重新表述问题 问题:如何在以下设置中在客户端上组织Python 迁移和两个应用程序在不同的计算机上共享数据库的一部分,python,django,django-models,Python,Django,Django Models,更好的描述-现在在新的部分重新表述问题 问题:如何在以下设置中在客户端上组织/manage migrate: 我必须在客户机上创建django网站,让本地用户登录并在本地做一些事情 还有一个服务器带有巨大的django应用程序,它的用户在服务器上做事情 客户机上还有一个“just python”应用程序,它从服务器传输数据,存储在本地,并使用直接SQL查询的本地副本(那里没有使用大量服务器表连接),只修改两个本地表,从服务器复制结构(而不是数据)以保持一致性 服务器django应用程序和客
/manage migrate
:
- 我必须在客户机上创建django网站,让本地用户登录并在本地做一些事情
- 还有一个服务器带有巨大的django应用程序,它的用户在服务器上做事情
- 客户机上还有一个“just python”应用程序,它从服务器传输数据,存储在本地,并使用直接SQL查询的本地副本(那里没有使用大量服务器表连接),只修改两个本地表,从服务器复制结构(而不是数据)以保持一致性
不,我必须在客户端上创建本地django web,使用
- 它自己的用户集,一些配置文件(一个连接到本地用户的配置文件)
- 它自己的本地表,为本地使用而读/写,但不会和服务器上的表冲突
- 共享表(从服务器复制,在客户端上纯只读,有时被共享协议覆盖)
我从头开始编写客户端django部分,我可以访问服务器部分的源代码(例如,我可以复制models.py),但我需要添加
- 本地身份验证
- 管理“仅本地”表的内容
- 可以通过迁移来扩展它们,但不要通过迁移现有的“从服务器复制的Mysql表”来进行更改
- 对于仅从此类“服务器副本表”显示的数据,请使用一些数据(有些数据将通过外键从这些本地表链接)
问题是我应该如何构造我的“客户机django应用程序”,使其可维护、与表的服务器副本共存(并与之一起工作) 我可以通过声明一些模型来创建我的应用程序,迁移,复制“服务器模型”,使用
--fake
这一部分进行迁移,然后像往常一样继续,但它将安装在更多的客户端上,共享表的结构稍后可能会添加一些我需要阅读的内容-因此另一个--fake
迁移
有没有办法在默认情况下进行一些“假”迁移,这样它就不会真正迁移,但不会以未填充的形式提供(如果那些模型会改变的话)?或者我只需将所有此类迁移命名为“0007\u PLEASE\u FAKE\u ME”,每次在每个客户机上手动完成?还是需要完全不同的访问权限
没有数据从客户端发送到服务器,服务器可以在任何时候发送它想要的任何数据/结构更改。无论如何,它都不会对我的应用程序造成问题,如果反映出一些结构更改,我会在之前收到警告,并且可以在传输真正发生后的几天/几周内完成
我甚至可以向“服务器”员工发送模型更改请求,将其合并到models.py中,并将其作为“仅结构更新”下推
我也可以将他们的models.py合并到我的models.py中,如果它发生变化的话
但我仍然不确定,我的OneTONE用户配置文件将如何在服务器上工作,那里有很多已经建立的用户,没有配置文件模型
Djago版本在服务器和客户端(1.10)上是相同的,所有表都是MyISAM
谢谢你的建议
编辑(针对@Thushar): 客户机通常365年7月24日运行,表按逻辑顺序由依赖项传输,首先是结束离开的表,然后是引用它们的表,最后是引用所有其他表的表-因此数据库模型每次都是一致的(只是在传输过程中可能不完整,所使用的任何表都有已传输的先决条件) “Created_by”没有在客户端上使用(取消引用)。到目前为止,客户端只运行一些python代码,它使用了列a表的枚举子集。这种方法可以使用5年以上
从active=1的主题中选择名称、文件名和卷
…和PLANGU allowed=1
)。更改是向后兼容的,因此即使客户机有10个版本的过时软件,也可以完全使用实际数据,只是缺少一些新功能class CustomerTrend(models.Model):
customer_id = models.ForeignKey(CustomerTable, related_name='purchased_by')
item = models.CharField(max_length=50)
price = models.PositiveIntegerField()