我有一台使用django的服务器。我正在尝试将我的数据库从sqlite3切换到mysql。以前用sqlite3做的一切都很好。但是,当我使用mysql并执行
时python manage.py syncdb
我没有收到任何错误,但是没有创建models.py中指定的表。仅创建以下表格:
[ec2-user@domU-12-31-39-0F-D2-F3 prototype]$ python manage.py syncdb
Syncing...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table south_migrationhistory
任何人都知道为什么?
答案 0 :(得分:5)
看起来你正在使用南方。通常,South会禁止在syncdb中创建大多数表,并且您应该首次运行South迁移来创建它们。这样南方可以跟踪表的状态并应用您拥有的任何特殊迁移规则,即使最初也是如此。
另一种可能是您没有在设置文件中的INSTALLED_APPS
变量中列出所有应用。
答案 1 :(得分:3)
你已经安装了南方。
当您运行python manage.py syncdb
时,它会同步所有非南方托管应用。
运行python manage.py migrate
以同步其他应用。
这是一个教程我运行了一些同事(官方的南方文档更深入,我有15分钟让他们在南方并且富有成效):https://gist.github.com/fyaconiello/2423447
答案 2 :(得分:0)
也可能是从对象继承模型类而不是从models.Model继承模型类
不会创建表格。并且不会出现错误
答案 3 :(得分:0)
我找到了另一个解决方案:
DATABASES['default']
更改为此数据库这将创建新的和清晰的数据库结构
ALTER table db1.table_name RENAME db2.table_name
多数,谢谢