Django:sqlite for dev,mysql for prod?

Jas*_*zek 20 python mysql sqlite django dev-to-production

快速提问:在开发Django项目时使用sqlite并在生产服务器上使用MySQL是个好主意吗?

Aqu*_*ion 22

我强烈建议在开发中使用与生成相同的数据库后端,以及介于两者之间的所有阶段.Django将抽象数据库的东西,但是拥有不同的环境会让你容易受到可怕的国际化,配置问题和令人讨厌的微小不一致的影响,直到你推送它们才会出现.

就个人而言,我坚持使用mysql,但我从未使用过postgres :)


Tom*_*ski 9

我先回答所有先前的答案,添加一些明确的理由:

  • 当你试图将字符串存储在字段宽度更长的时候,MySQL会发出警告异常 - 你不会在SQLite中得到它们,因此不仅你的字符串在开发和生产之间会有所不同,而且程序行为也是如此
  • 两个后端中的错误是不同的 - 我记得曾经我尝试使用SQLite for dev和MySQL进行生产,但事实证明我在MySQL后端发现了一个在SQLite中没有的错误.所以我为它提交了一张票并转而使用MySQL进行测试:-)

你甚至可以尝试在速度方面与SQLite竞争,看看我对其他问题的回答:

提高Django中MySQL表创建的速度?


Pen*_*m10 8

你为什么想这么做?

  • SQLite还没有存储过程支持.
  • SQLite是无类型的.运行MySQL时,最终可能会出现很多类型转换问题.
  • SQLite也不支持RIGHT join.


Nev*_*vir 7

在所有环境中使用相同的数据库.

尽管ORM试图抽象数据库之间的差异,但总会有某些功能在数据库的基础上表现不同.数据库可移植性是一个完整的神话.

另外,对于你永远不会在生产中使用的代码路径进行测试和开发似乎非常疯狂,不是吗?