Django博客:同步mysql数据库中的表

由于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文件夹中的文件全部删除了,但是就出现了上面的问题。

 

posted @ 2017-02-02 21:46  伊斯科明  阅读(4975)  评论(0编辑  收藏  举报