我是否需要使用 git 来跟踪数据库文件和迁移脚本?

Do I need to use git to track both database files and migrate scripts?

我正在阅读 Miguel Grinberg 的精彩教程来学习 Flask。在那一章中,他谈到了使用 Flask-Migrate 扩展来应对数据库模式的变化。他说迁移脚本需要添加到版本控制系统,但是数据库文件本身呢?是否应该将其添加到 .gitignore 文件中?为什么?

谢谢!

通常您不想将数据库存储在版本控制中。如果您按照 Miguel 的建议使用 Flask-SQLAlchemy,那么有一些方法可以确保在数据库不存在时创建该数据库。但是数据显然不会持久化。

所以如果你决定不想把数据库文件存放在git中那么使用建议把它添加到.gitignore文件中以保证不被意外添加到版本控制。

您不想这样做的一个例子是,如果您的网站 运行 有很多用户。用户已通过您的烧瓶应用程序将他们的数据输入并保存到您的数据库中。通常对于生产应用程序,数据库作为单独的 运行 应用程序托管,因此甚至不会与您的代码一起存储。以这种方式开发 Flask 应用程序的原因是使用内置的 Python SQLLite 非常容易。它不需要任何额外的程序 运行 或配置,使开发更容易。通过使用 SQL Alchemy,您可以将 SQL 数据库更改为,例如,生产中的 postgresql 或任何最适合您的数据库。 Flask-Migrate(由 Miguel 创建)是作为 Flask 一部分的优秀数据库迁移库。