Django中开发环境与生产环境数据库表结构同步方案

Django中开发环境与生产环境数据库表结构同步方案

引入

在开发Django中,前期都是用一个数据库,当开发到一定阶段后,需要引入生产环境的概念,这个时候很多开发者会利用
python manage.py makemigrations来进行数据库表结构的同步,但是如果 makemigrations文件夹中文件过多,或者其他原因,会导致执行 python manage.py makemigrations报错,报出来的错好解决就好,如果不好解决,网上的一般方案就是让你删掉makemigrations文件夹。但是这个文件夹不仅仅是用来同步表,还可以让你回顾你自己在什么阶段对表做了什么操作,我不建议删除。

因此我这里提供另一个思路,不从代码框架层面去考虑,从工具层面去考虑。仅提供一个思路,如果你有更好的方案,也可以留言告诉我

工具

在数据库的操作上,毫无疑问,Navicat 是非常强大的工具,具体怎么获取软件我这里就不多说,默认你已经安装好了。

操作

步骤非常简单

	我的两个数据,一个是生产环境,一个Docker搭的测试环境

在这里插入图片描述
这里我已经同步好了,没同步之前应该是没有report的 以上是前置条件

  1. 数据库准备好之后在你的生产环境中导出.sql的文件 按下面操作

在这里插入图片描述

这里要注意‘结构+表数据’代表整个表内容+整个表结构整个导出,如果数据量非常之大几十m那种,建议选仅结构,数据后面再造。因为数据量大在导入的时候容易报错。我也不知道为什么,有大佬可以告诉我一下

  1. 在要导入的数据库中选择导入刚刚的.sql文件
    在这里插入图片描述
  2. 选择你刚刚导出的文件,下面的都要勾上,或者根据自身的需求不勾。默认勾上就好
    在这里插入图片描述

总结

以上就是不通过Django的框架来操作两个数据库中的数据、表结构的同步,当然你能通过代码来同步是更好,这里只是一种替代方案。也提供一种思路,避免在开发的时候遇到问题钻牛角尖,可以考虑通过另一种方式来达到目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章