由於django的項目不是新建的,之前執行過
python manage.py makemigrations
python manage.py migrate
的語句。
(1)所以當我再次在mysql數據庫中建立新的數據庫時,執行上面的兩句時,並沒有什么卵用!!!只建立了下面幾個表格
| blog_blog |
| blog_blog_tag |
| blog_category |
| blog_comment |
| blog_tag |
(2)查閱了網上的資料,說刪除app文件夾中的migrations中的所有文件,但是也只能在數據庫中建立除了第(1)步中的數據表的表
+---------------------------------+
| Tables_in_myblog_master_v4_temp |
+---------------------------------+
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+---------------------------------+
由上面看得出,沒有models.py中對應的表。
(2)因為上面執行python manage.py makemigrations時,沒有檢測到什么,所以我用了比較笨的方法,首先把models.py的每個字段名字都修改,執行一遍python manage.py makemigrations appname,再把models.py的每個字段的名字改回來自己需要的,再刪除掉app中的migrations文件夾中的文件,執行一次python manage.py makemigrations apname和python manage.py migrate。之后mysql數據庫中的表就都有了。
+---------------------------------+
| Tables_in_myblog_master_v4_temp |
+---------------------------------+
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| blog_blog |
| blog_blog_tag |
| blog_category |
| blog_comment |
| blog_tag |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+---------------------------------+
如果需要導入已有的數據,應該先python manage.py migrate創建新的數據表,再導入已有的數據才行。如果順序倒過來就會在python manage.py migrate時報錯!!!
導入數據遷移的方法:
(1)從mysql數據庫導出數據(在ubuntu命令行輸入):mysqldump -uroot -p myblog_master_v4 > myblog.sql
(2)進入mysql數據庫命令行,use 對應數據庫
(3)source myblog.sql的路徑
原因:
之所以會碰到這個問題,是一開始我的mysql數據庫里面對應的數據庫只有
| blog_blog |
| blog_blog_tag |
| blog_category |
| blog_comment |
| blog_tag |
這幾個表,所以登錄admin后台時就不成功(我是用apache服務器代替了開發服務器,登錄網址為192.168.1.108/admin),只有換回開發服務器才能成功登錄admin后台。所以我把對應app下的migrations文件夾中的文件全部刪除了,但是就出現了上面的問題。