使用Django 1.5更新数据库结构

时间:2013-07-09 17:46:20

标签: database django django-1.5

我正在寻找可以执行以下操作的更新的Django 1.5命令。

python manage.py reset <app>

我想要做的基本上是DROP表和UPDATE里面的数据库结构manage.py command

重要的是重置命令不再有效

manage.py flush

manage.py sqlclear <app> 

只是删除数据库/表格内容。

Django 1.5的更新reset版本是什么?

2 个答案:

答案 0 :(得分:0)

作为MySQL替代方案,您可以使用以下代码在application.py旁边创建manage.py

这将DROPCREATEUPDATE您的models.py

数据库
#!/usr/bin/python
import MySQLdb
import subprocess

dbname = "mydbname"

db = MySQLdb.connect(host="127.0.0.1", user="username", passwd="superpassword", db=dbname)

cur = db.cursor() 

#Drop all database to Drop all tables
cur.execute("DROP DATABASE "+dbname)

#Recreate the DB
cur.execute("CREATE DATABASE "+dbname)

#Sync with manage.py
proc = subprocess.call(['python','manage.py','syncdb'])

print "\n\nFinished!"

答案 1 :(得分:0)

我认为你在寻找的是南方。 South是第三方工具,可能很快就会集成到Django中,它可以帮助您进行数据库迁移和模式更改。就目前而言,如果有的话,Django 1.5并不能很好地处理架构变化。在Django 1.5中调整模式的唯一方法是添加新模型。您不希望参与添加新模型以实​​现所需表格更改或删除的做法。大多数开发人员在需要进行架构调整时转向第三方解决方案。

请参阅http://south.readthedocs.org/en/latest/about.html

请参阅教程http://south.readthedocs.org/en/latest/tutorial/part1.html#tutorial-part-1

South与数据库无关,并自动为您处理数据库迁移。因此,如果您更改架构,它将在models.py中检测到它并进行适当的更改。您可以将South作为应用程序包含在Django项目中,并通过pip

进行安装

希望这有帮助