引入
在開發Django中,前期都是用一個數據庫,當開發到一定階段後,需要引入生產環境的概念,這個時候很多開發者會利用
python manage.py makemigrations
來進行數據庫表結構的同步,但是如果 makemigrations文件夾中文件過多,或者其他原因,會導致執行 python manage.py makemigrations
報錯,報出來的錯好解決就好,如果不好解決,網上的一般方案就是讓你刪掉makemigrations文件夾。但是這個文件夾不僅僅是用來同步表,還可以讓你回顧你自己在什麼階段對錶做了什麼操作,我不建議刪除。
因此我這裏提供另一個思路,不從代碼框架層面去考慮,從工具層面去考慮。僅提供一個思路,如果你有更好的方案,也可以留言告訴我
工具
在數據庫的操作上,毫無疑問,Navicat 是非常強大的工具,具體怎麼獲取軟件我這裏就不多說,默認你已經安裝好了。
操作
步驟非常簡單
我的兩個數據,一個是生產環境,一個Docker搭的測試環境
這裏我已經同步好了,沒同步之前應該是沒有report的 以上是前置條件
- 數據庫準備好之後在你的生產環境中導出.sql的文件 按下面操作
這裏要注意‘結構+表數據’代表整個表內容+整個表結構整個導出,如果數據量非常之大幾十m那種,建議選僅結構,數據後面再造。因爲數據量大在導入的時候容易報錯。我也不知道爲什麼,有大佬可以告訴我一下
- 在要導入的數據庫中選擇導入剛剛的.sql文件
- 選擇你剛剛導出的文件,下面的都要勾上,或者根據自身的需求不勾。默認勾上就好
總結
以上就是不通過Django的框架來操作兩個數據庫中的數據、表結構的同步,當然你能通過代碼來同步是更好,這裏只是一種替代方案。也提供一種思路,避免在開發的時候遇到問題鑽牛角尖,可以考慮通過另一種方式來達到目的。