20

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

4

6 回答 6

24

我强烈建议在生产中使用与开发相同的数据库后端,以及两者之间的所有阶段。Django 将抽象数据库的东西,但是拥有不同的环境会让你面临可怕的国际化、配置问题和令人讨厌的微小不一致,这些甚至在你将其推出之前都不会出现。

就个人而言,我会坚持使用 mysql,但我从来没有使用过 postgres :)

于 2010-02-21T13:50:03.637 回答
10

我支持所有先前的答案,并添加了一些明确的原因:

  • 当您尝试将字符串存储得比字段宽度更长时,MySQL 会发出警告异常 - 您不会在 SQLite 中获取它们,因此不仅您的字符串在开发和生产之间会有所不同,而且程序行为也会有所不同
  • 两个后端中的错误是不同的——我记得有一次我尝试使用 SQLite 进行开发和 MySQL 进行生产,但结果发现我在 MySQL 后端中发现了一个错误,而 SQLite 中不存在该错误。所以我为它提交了一张票并切换到 MySQL 进行测试:-)

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

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

于 2010-02-21T14:00:36.803 回答
8

你为什么想这么做?

  • SQLite 还没有存储过程支持。
  • SQLite 是无类型的。运行 MySQL 时可能会遇到很多类型转换问题。
  • SQLite 还不支持 RIGHT 连接。
于 2010-02-21T13:47:15.497 回答
7

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

尽管 ORM 试图抽象数据库之间的差异,但总会有某些特性基于数据库而表现不同。数据库可移植性完全是一个神话。

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

于 2012-02-22T19:42:13.873 回答
3

刚从 sqlite 开始犯了这个重大错误,当我尝试使用 mysql 在生产服务器上部署时,事情并没有像我预期的那样顺利。我尝试使用各种开关进行转储数据/加载数据,但不知何故不断地抛出一个接一个的错误。帮自己一个大忙,在生产和开发中使用相同的数据库。

于 2012-10-02T05:26:09.970 回答
3

简而言之,不;除非你想不必要地加倍开发时间。

于 2010-02-21T13:49:51.907 回答