使用最新版本创建新站点或使用旧站点

我正在进行的项目基于 Django 1.4,实际上我无法更改/更新它。

我必须使用 API 来修改该站点上的数据。

我以为我会使用 Django Rest Framework 来做到这一点。

如果我使用 Django 3.X 和 DRF 的最新版本从头开始一个新站点,使用与最旧站点相同的数据库,会有问题吗?

我的意思是,如果通过在新站点上使用 API 我更改数据库上的数据,这也会在“旧”站点上更改?

另一方面,我可以继续在“旧”站点上工作并使用旧版本的 DRF,但这些版本不太完整,文档较少且安全性较低。


至尊宝的传说
浏览 106回答 1
1回答

BIG阳

这听起来像是启动迁移项目到受支持且安全的 Django 版本的绝佳机会。始终使用 LTS 版本:2.2 是最新的 LTS 版本,3.x 尚未发布。您需要从旧应用程序中复制模型并设置managed = False,访问与旧项目相同的数据库以使用新 API 修改数据。一旦您的 API 可以处理网站所需的所有功能,迁移整个网站将非常容易。请注意以下事项:新项目中的模型需要使用相同的数据库表和列,具有相同的字段类型。但是没有什么能阻止你重命名实际的模型和字段(如果你觉得旧项目使用“坏”的命名约定),只要你指定db_column(在字段上)和db_table(在模型上)让 Django 知道映射到现有的数据库。您可以将新模型和表添加到现有数据库(使用managed = True),而不会影响旧应用程序。如果在某个阶段您需要修改现有表:然后,您可能会考虑切换到managed = True(并将旧应用程序更改为managed = False),确保在此之前您已从数据库中清除迁移表,然后使用fakeset 运行迁移(以免实际迁移任何内容)。如果不再维护旧应用程序,我会这样做。如果仍然维护旧应用程序,那就有点棘手了。您可能必须直接在 SQL 中进行数据库更改。不会影响旧应用程序的更改:添加新列。将影响旧应用程序的更改:限制约束、添加约束或更改数据类型的任何内容。可能影响旧应用程序的更改:放松约束。这不会影响您数据库中的现有数据,但它可能会触发旧应用程序的验证器,这些验证器需要某种格式的数据并为新数据获取“无效”数据。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python