使用什么命令可以从特定应用程序的django数据库中删除表/只有一个表? 我确实找到了各种各样的东西,但没有找到摆脱桌子的方法。
同时我在这里。
我创建模型并点击syncdb然后我有表格。 如果我想更新/添加这些表,我是否会遇到问题?
答案 0 :(得分:4)
最好的办法是将django-south安装在你的机器上。
如果您使用pip,请执行pip install django-south
这使您可以向前和向后迁移数据。
这非常方便,特别是如果您需要更新表和新表等。
检查出来。
向应用添加南方就像python manage.py schemamigration appname --initial
在模型中进行更改并运行以下python manage.py schemamigration appname --auto
创建数据迁移文件后,它会告诉您现在可以迁移数据了。
只需使用python manage.py migrate appname
http://south.aeracode.org/docs/about.html
希望这有帮助
答案 1 :(得分:0)
如果要删除表,这是在您尝试删除的特定应用程序的模型文件中完成的,没有命令,您只需进入该文件并将其删除然后重新运行syncdb ,对于你的另一个问题,答案是一样的..每个app文件夹都应该有一个名为“models.py”的文件,这里是指定了等于表格的模型及其字段,你只需编辑它就可以进行任何更改。
答案 2 :(得分:0)
def reset():
import install
from django.db.models import get_models
removed_tables = []
exceptions = []
for model in get_models():
if model.__name__ not in ('User','Session','Group','Permission'):
try:
model.objects.all().delete() # So we can remove the table without complaints from the database server.
CURSOR.execute('DROP TABLE %s' % model._meta.db_table)
print "Dropped table %s from model %s" % (model._meta.db_table, model.__name__)
except Exception as e:
exceptions.append([model._meta.db_table, str(e)])
continue
removed_tables.append(model._meta.db_table)
print "Removed %s tables" % len(removed_tables)
syncdb()
install.install() # A function that leads to the creation of my default data