2016-12-17 7 views
1

MySQLからPostgreSQLへプロジェクトを移行し、問題のある列をmodels.pyから削除して保存したため、以前の問題の結果として列を削除しようとしました。エラーは消えませんでした。 Integer error transferring from MySQL to PostgreSQLPostgreSQLに転送した後に '関係は存在しません'エラー

引用符の有無にかかわらず試してみました。

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> 

のようなものですDjangoのあなたは、それは明らかにこれは./manage.pyシェルによって呼び出されるDjangoのシェル、に入力する必要があります

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

である正確に何を見つけることができますこのprintステートメントの結果は、クエリで使用する必要があります。

+0

私はちょうど今得意ではありません。私のアプリの名前は「blog」なので、「blog_UserProfile」を試してみましたが、「終了しません」 –

+1

UserProfile._meta.db_tableを示唆したように印刷してみませんか? – e4c5

+0

"エラー:データベース間の参照は実装されていません"さらに構文が分かりません。最初は明らかですが、ここには何がありますか? –

関連する問題