2016-12-17 2 views
1

Я перенес свой проект из MySQL в PostgreSQL и попытался удалить столбец в результате предыдущей проблемы, потому что после того, как я удалил проблемный столбец из models.py и сохранил. ошибка даже не исчезла. Integer error transferring from MySQL to PostgreSQLОшибка связи не существует после переноса на PostgreSQL

Пробовал и с кавычками, и без них.

ALTER TABLE "UserProfile" DROP COLUMN how_many_new_notifications; 

Или:

ALTER TABLE UserProfile DROP COLUMN how_many_new_notifications; 

Получение следующее:

ERROR: relation "UserProfile" does not exist 

Вот модель, если помогает:

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    how_many_new_notifications = models.IntegerField(null=True,default=0) 
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0]) 

Я предположил, что это может иметь что-то делать с смешанный случай, но я не нашел решения грубые все подобные вопросы.

+2

Попробуйте без двойных кавычек. –

+0

@ Gordon Linoff О, да, попробовал оба. Это своего рода решение, которое я нашел и попробовал –

ответ

0

Да, Postgresql - это база данных, отличная от случая, но django достаточно умен, чтобы знать это. Он преобразует все поле и обычно преобразует имя модели в имя таблицы нижнего регистра. Однако настоящая проблема заключается в том, что ваше имя модели будет иметь префикс имени приложения. как правило, Джанго имена таблиц как

<appname>_<modelname> 

Вы можете узнать, что именно он является

from myapp.models import UserProfile 
print UserProfile._meta.db_table 

Очевидно, что это должно быть набрано в Джанго оболочку, которая вызывается с помощью ./manage.py оболочки результат этого утверждения печати - это то, что вы должны использовать в своем запросе.

+0

Я не могу точно понять, что сейчас. Мое приложение называется «блог», поэтому я попробовал «blog_UserProfile», но он «не выходит» –

+1

. Почему бы вам просто не напечатать UserProfile._meta.db_table, как было предложено? – e4c5

+0

«ОШИБКА: ссылки на кросс-базы данных не реализованы», и я не очень понимаю синтаксис. Сначала ясно, но для чего здесь _meta? –