как заставить django управлять таблицей, которая была не в процессе миграции, а в базе данных?

#django #migration #migrate

#django #миграция

Вопрос:

Хорошо, там, где я работаю, мы используем базу данных, которую хотели бы продолжать использовать, но вместо этого подключаем ее к другому интерфейсу. Django 1.8

мы выполнили inspectdb, выполнили перенос на основе этой информации и перенесли

но все равно не будет работать. другие таблицы работают нормально, но другие таблицы не существовали до миграции (и не были взяты из другой базы данных), а в таблице, которую мы просматриваем, была информация, которую мы хотели сохранить для тестирования

ошибка, которую мы получаем,

 column plans_to_lodge.id does not exist
LINE 1: SELECT "plans_to_lodge"."id", "plans_to_lodge"."sm_sequence"...
  

Ответ №1:

Если я правильно понял вопрос, вы не хотите использовать модели Django с таблицами, созданными вне Django, верно?

Похоже, у вас нет id столбца в этой таблице. Django требуется один столбец ПЕРВИЧНОГО КЛЮЧА, иначе он попытается использовать id его по умолчанию.

Попробуйте установить автозаполнение в столбец sutitable: https://docs.djangoproject.com/en/1.8/topics/db/models/#automatic-primary-key-fields

Комментарии:

1. я добавил его, чтобы таблица миграции makemigration не обновлялась вместе с полем, поэтому я точно знаю, что таблица не синхронизирована

2. Вы указываете модель на правильную таблицу: docs.djangoproject.com/en/1.10/ref/models/options/#db-table ?

3. да, он был назван так же и в классе meta. все строчные буквы просто отказались ее использовать. теперь я перешел к тому, что я пытаюсь сделать, это pg_restore информацию из этой таблицы в таблицу (точно такую же), но созданную django. и мой pg_restore сообщает мне, что он не может найти какие-либо файлы в «C:backup обратите внимание, что это просто данные для таблицы