Django db Таблица удалить - PullRequest
       1

Django db Таблица удалить

1 голос
/ 25 августа 2010

С помощью какой команды я могу удалить таблицы из django db определенного приложения / только одной таблицы? Я нашел все что угодно, но не то, как избавиться от стола.

Также пока я в этом.

Я создаю модели и нажимаю syncdb, а затем у меня есть таблицы. Если я хочу обновить / добавить эти таблицы, у меня возникают проблемы?

Ответы [ 3 ]

4 голосов
/ 25 августа 2010

Лучше всего, чтобы на вашем компьютере был установлен 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

Надеюсь, это поможет

0 голосов
/ 06 июня 2011
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
0 голосов
/ 25 августа 2010

Если вы удаляете таблицу, это делается в файле модели конкретного приложения, которое вы пытаетесь удалить, для этого нет команды, вы просто заходите в файл и удаляете его, а затем снова запускаете syncdbдля вашего другого вопроса ответ такой же ... каждая папка приложения должна иметь файл с именем "models.py", и здесь указаны модели, которые в данном случае эквивалентны таблицам вместе с их полями,Вы просто редактируете это, чтобы внести любые изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...