2016-05-30 5 views
1

Я переместил свой стол с app_a в другой app_b с помощью db_table. Первоначально я добавил мета информацию, как,Django перемещает таблицу в другое приложение с помощью db_table и не удаляет исходную таблицу

# app_b.models.ppy 
class Table(models.Model) 
# all fields 
class Meta: 
    db_table = 'app_a_table' 
    app_label = 'app_a' 

Если я делать какие-либо изменения в этой таблице в app_b, миграции не создает новый файл миграции в папке миграции. В нем говорится.

No changes detected in app 'app_b' 

Я пытался от этого ans, и прокомментировал app_label = 'app_a'. Теперь после миграции он обнаруживает изменения и создает файл миграции.

Затем я выполняю команду python manage.py migrate, она постоянно просит удалить исходную таблицу app_a_table.

The following content types are stale and need to be deleted: 

    app_a | table 

Any objects related to these content types by a foreign key will also 
be deleted. Are you sure you want to delete these content types? 
If you're unsure, answer 'no'. 

    Type 'yes' to continue, or 'no' to cancel: no 

Как подавить это уведомление? Как сообщить о миграции django, что эта таблица существует в другом приложении?

+0

Вы должны создать mirgation, что создает новую таблицу. копирует данные и удаляет старые. Не забудьте ссылки. –

+0

@KlausD. если таблица большая, что приведет к значительному времени простоя. – e4c5

ответ

1

После того, как я переместил свой стол от app_a к другому app_b с использованием db_table и app_label. Миграции работают, если я запускаю их только для app_a.

python manage.py makemigrations app_a 

Эта команда запуска миграции для app_b

 Смежные вопросы

  • Нет связанных вопросов^_^