принудительно удалить строку в приложении django после миграции - PullRequest
0 голосов
/ 09 июня 2010

После миграции с юга я удалил столбец. Теперь текущие данные в одной из моих таблиц облажались, и я хочу удалить их, но попытки удалить просто приводят к ошибке:

>>> d = Degree.objects.all()
>>> d.delete()
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Python26\lib\site-packages\django\db\models\query.py", line 440, in d
elete
    for i, obj in izip(xrange(CHUNK_SIZE), del_itr):
  File "C:\Python26\lib\site-packages\django\db\models\query.py", line 106, in _
result_iter
    self._fill_cache()
  File "C:\Python26\lib\site-packages\django\db\models\query.py", line 760, in _
fill_cache
    self._result_cache.append(self._iter.next())
  File "C:\Python26\lib\site-packages\django\db\models\query.py", line 269, in i
terator
    for row in compiler.results_iter():
  File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 67
2, in results_iter
    for rows in self.execute_sql(MULTI):
  File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 72
7, in execute_sql
    cursor.execute(sql, params)
  File "C:\Python26\lib\site-packages\django\db\backends\util.py", line 15, in e
xecute
    return self.cursor.execute(sql, params)
  File "C:\Python26\lib\site-packages\django\db\backends\sqlite3\base.py", line
200, in execute
    return Database.Cursor.execute(self, query, params)
DatabaseError: no such column: students_degree.abbrev
>>>

Есть ли простой способ принудительно удалить? Должен ли я удалить таблицу, а затем повторно запустить schemamigration для manage.py, чтобы заново создать таблицу на юге?

1 Ответ

1 голос
/ 02 июля 2010

Вы можете использовать

python manage.py reset [YOUR APP NAME]

, но он удалит все данные из всех таблиц этого приложения.

Или вы можете запустить простой старый sql, удалить эту таблицу и повторно запустить миграцию

> mysql -p -h HOST -u USER DATABASE_NAME
>> DROP TABLE APPNAME_degree;
>> exit;
> python manage.py migrate
...