当前位置: 首页 > 面试题库 >

我应该在.gitignore文件中添加Django迁移文件吗?

牟星火
2023-03-14
问题内容

我应该在文件中添加Django迁移.gitignore文件吗?

由于迁移冲突,我最近遇到了很多git问题,并且想知道是否应该将迁移文件标记为“忽略”。

如果是这样,我将如何添加我在应用程序中拥有的所有迁移并将它们添加到.gitignore文件中?


问题答案:

引用Django迁移文档:

每个应用程序的迁移文件都位于该应用程序内的“迁移”目录中,并且被设计为提交至其代码库并作为其代码库的一部分进行分发。您应该在开发计算机上制作一次,然后在同事的计算机,登台计算机以及最终的生产计算机上运行相同的迁移。

如果遵循此过程,则迁移文件中不会出现任何合并冲突。

合并版本控制分支时,您仍可能会遇到基于同一父级迁移的多个迁移的情况,例如,如果不同的开发人员同时引入了迁移。解决这种情况的一种方法是引入_merge_migration_。通常这可以通过以下命令自动完成

./manage.py makemigrations --merge

这将引入一个新的迁移,该迁移取决于当前的所有head迁移。当然,这仅在磁头迁移之间没有冲突时才有效,在这种情况下,您将必须手动解决问题。

考虑到这里的一些人认为,你 不应该 提交你迁移到版本控制,我想为什么你实际上是扩大的原因 应该 这样做。

首先,您需要记录应用于生产系统的迁移。如果将更改部署到生产中并想迁移数据库,则需要描述当前状态。您可以为应用到每个生产数据库的迁移创建单独的备份,但这似乎不必要。

其次,迁移通常包含自定义的手写代码。并非总是可以使用自动生成它们./manage.py makemigrations

第三,迁移应包括在代码审查中。它们是对您的生产系统的重大更改,许多事情可能会出错。

简而言之,如果您关心生产数据,请检查您向版本控制的迁移。



 类似资料:
  • 问题内容: 我应该在文件中添加Django迁移文件吗? 由于迁移冲突,我最近遇到了很多git问题,想知道是否应该将迁移文件标记为“忽略”。 如果是这样,我将如何添加我在应用程序中拥有的所有迁移并将它们添加到文件中? 问题答案: 每个应用程序的迁移文件都位于该应用程序内的“迁移”目录中,并被设计为提交至其代码库并作为其代码库的一部分进行分发。你应该在开发计算机上制作一次,然后在同事的计算机,登台计算

  • 问题内容: 要锁定项目上安装的依赖项的版本,该命令将创建一个名为的文件。这是从Node.js v8.0.0和npm v5.0.0开始的 ,您可能已经知道了。 尽管有Node.js和npm关于提交此文件的建议,但是关于何时应避免这样做的一些担忧也是一个选择。通常,我们致力于项目,但这是一个奇特的问题。 虽然我们默认情况下应该提交文件,但是我们有一个特定的情况,我们不应该提交。例如,如果我们要测试项目

  • 我尝试从Eclipse切换到IntellijIDEA。我有一个使用Git的项目,我想快速向.gitignore文件添加文件。在Eclipse中,我可以右键单击一个文件/目录,然后选择'Add to.gitignore'。 在IntelliJ IDEA中是否有类似的内容或者我必须手动编辑文件?

  • 我知道我必须项目根目录中的文件夹。但是还有文件夹。我需要追踪吗? 更新:我看到还有一个类似的问题,但更笼统。但我没看到有人像我这样谈论问题。如果在结尾处加上斜线,效果就会不同: 而且看起来没有人在那里谈论应用程序/构建文件夹。这必须是新的项目结构,因为有些人使用/Builder,它对他们有效。那是因为他们没有应用程序/构建器文件夹。我觉得。

  • 我目前正在学习nestjs。当我遇到typeorm时,它是生成迁移的脚本,它在一个文件中创建每个表。现在在我的工作场所,我们在这里使用快速Js,他们为每个表创建迁移文件。结构看起来或多或少像下面: 虽然我更喜欢nestjs方法,但我想知道哪种方法是创建迁移文件的最佳方法。如果更好的方法是上面的例子,那么优点和缺点是什么。任何帮助都将不胜感激,谢谢。 编辑:长话短说,表迁移方法哪个更好,每个表一个文

  • 只有记录器。java假定已提交,而其他两个文件未提交。 这是我的。gitignore文件: