关于django 1.8两勺的ch2.1.1是什么意思?

时间:2015-07-28 02:36:56

标签: python django

ch 2.1.1标题是You Can't Examine an Exact Copy of Production Data Locally

其内容如下:

  

当您的生产数据库与本地开发数据库不同时,您无法获取生产数据库的精确副本以在本地检查数据。

     

当然,您可以从生产中生成SQL转储并将其导入到本地数据库中,但那样做   并不意味着您在导出和导入后拥有完整的副本。

是什么意思?

1 个答案:

答案 0 :(得分:2)

假设您在生产中正在运行PostgresMySQL,并且正在开发sqlite。 Django ORM使您能够编写跨三个数据库(大多数情况下)工作的python代码,但每个数据库都支持不同的功能,这些功能使它们彼此略微不兼容(尽管它们都是RDBMS并且使用SQL )。

如果从生产Postgres或MySQL数据库中获取数据库转储并尝试在sqlite上执行它,它可能会加载所有数据,但幕后将会有很多差异(列类型,外键,索引,任何非标准扩展,例如JSON in Postgres,如何计划和执行查询,编码,整理,存储引擎等。即使是相同数据库软件的不同版本也可以采用不同的方式。

例如,sqlite只有five data typesnullintegerrealtextblob。将其与MySQLPostgres中的数十种类型进行比较。

我没有这本书,但我猜他们会说:如果你想完全确定你在开发中编写的代码在生产中的作用是一样的,那么你应该在两种环境中使用相同的数据库软件。