我正在使用Django 1.7,PostgresApp(PostgreSQL 9.4),Python 2.7。
我已按照本教程设置和创建应用:https://docs.djangoproject.com/en/1.9/intro/tutorial02/
在Python shell中,我的数据库架构一直出现“ProgrammingError:relation”app_table“不存在”等错误。
所以我使用了教程中的类:
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
然后在我得到的shell中(正确的值):
>>> Question.objects.all()
[]
>>> Choice.objects.all()
[]
然后,将名称 Choice 修改为 MyChoice 可以得到:
>>> Question.objects.all()
[]
>>> MyChoice.objects.all()
...
ProgrammingError: relation "app_mychoice" does not exist.
为什么会这样? 我尝试了其他帖子中建议的答案
./manage.py makemigrations;
./manage.py migrate auth;
./manage.py migrate and
python manage.py syncdb
但没有任何效果。
答案 0 :(得分:0)
您好我将现有应用迁移到1.11并对模型进行了一些小改动时遇到了同样的问题。我发现的唯一解决方案是....
清除应用迁移目录中的所有文件,只保留 init .py文件
确保admin.py文件为空
运行manage.py makemigrations
运行manage.py sqlmigrate <app_label> 0001
复制sql输出
使用pgAdminIII选择“执行任意SQL查询”
在pgAdminIII
这是我能找到的唯一解决方案,有点破解,但是有效。希望它有所帮助。我想这也可以通过psql终端工作,但我使用了pgAdmin