Ran*_*ngh 76 python mysql django django-1.3
我正在使用Django构建一个MySQL网站.现在我正在学习所以我需要经常更改模型,所以我希望清除所有表并创建新表.
但是syncdb不接触现有的表格.有没有更好的方法来处理这个问题?
man*_*lds 136
如果您不关心数据:
最好的方法是删除数据库并syncdb再次运行.或者你可以运行:
对于Django> = 1.5
python manage.py flush
Run Code Online (Sandbox Code Playgroud)
对于Django <1.5
python manage.py reset appname
Run Code Online (Sandbox Code Playgroud)
(您可以添加--no-input到命令的末尾,以便跳过交互式提示.)
如果你关心数据:
来自文档:
syncdb仅为尚未安装的模型创建表.它永远不会发出ALTER TABLE语句来匹配安装后对模型类所做的更改.对模型类和数据库模式的更改通常涉及某种形式的歧义,在这些情况下,Django必须猜测要进行的正确更改.存在关键数据在此过程中丢失的风险.
如果您对模型进行了更改并希望更改数据库表以匹配,请使用sql命令显示新的SQL结构,并将其与现有的表模式进行比较以计算更改.
https://docs.djangoproject.com/en/dev/ref/django-admin/
人们也推荐South(http://south.aeracode.org/docs/about.html#key-features),但我还没试过.
使用Django Extensions,运行:
./manage.py reset_db
Run Code Online (Sandbox Code Playgroud)
将清除数据库表,然后运行:
./manage.py syncdb
Run Code Online (Sandbox Code Playgroud)
将重新创建它们(南方可能会要求你迁移东西)。
| 归档时间: |
|
| 查看次数: |
97780 次 |
| 最近记录: |