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

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

空正豪
2023-03-14
问题内容

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

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

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


问题答案:

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

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

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

./manage.py makemigrations --merge

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

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

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

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

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

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



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

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

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

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

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

  • 我在我支持的许多应用程序中实现了Flyway,它像梦一样工作。 但是,当我将应用程序部署到测试环境时,迁移就停止了。 经过一些调查,我发现当迁移被加载到jar文件中时,它们不是通过Flyway定位的,而是当它们没有被压缩时(比如当我在Eclipse中工作时,或者如果我将jar解压到类路径中),它会按预期工作。 由于应用程序的插件架构,我无法使用“默认”设置,因此我将Flyway对象设置为: 如果要