我用两个新模型MyMap和CustomMap编辑了我的Django model.py。当我迁移本地数据库并运行本地服务器时,我可以通过shell或管理客户端修改记录。
部署到AWS环境后,当我尝试在example.com/admin/as_app/custommap /中添加MyMap或CustomMap时出现以下错误:
/ admin / as_app / custommap /
中的ProgrammingError关系“as_app_custommap”不存在
第1行:SELECT COUNT('*')AS“__count”FROM“as_app_custommap”
当我部署到弹性beanstalk时,所有迁移都会自动生成并运行。我可以通过ssh确认这样的EC2实例:
(venv)[root@ip-#### django_folder]# python manage.py makemigrations
No changes detected
我还确认我的更改实际上是在models.py中:
(venv)[root@ip-#### django_folder]# vi as_app/models.py
class MyMap(models.Model):
name = models.CharField(default='', max_length=200, unique=True)
def name_and_id(self):
return self.name + " (" + str(self.pk) + ")"
kml_file = models.FileField(upload_to='as_app/my_maps', blank=True, default='')
class CustomMap(models.Model):
name = models.CharField(verbose_name='Map Name', default='', max_length=200, unique=True)
def location(self):
return u'<a href="' + settings.BASE_URL + u'map/custom_view/' + self.name + u'">' + settings.BASE_URL + u'map/custom_view/' + self.name + u'</a>'
location.allow_tags = True
widget1 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget2 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget3 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget4 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget5 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget6 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget7 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget8 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget9 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
widget10 = models.FileField(upload_to='as_app/custom_maps', blank=True, default='')
class ExternalData(models.Model):
name = models.CharField(verbose_name='Data Name', default='', max_length=200, unique=True)
location = models.URLField()
def clickable_location(self):
return u'<a href="' + self.location + u'">' + self.location + u'</a>'
clickable_location.allow_tags = True
...
但是,当我检查数据库时,我可以看到模型仍然缺失:
(venv)[root@ip-#### django_folder]# python manage.py inspectdb
from __future__ import unicode_literals
from django.db import models
class AsAppExternaldata(models.Model):
name = models.CharField(unique=True, max_length=200)
location = models.CharField(max_length=200)
class Meta:
managed = False
db_table = 'as_app_externaldata'
...
最后通过shell我可以重现我在管理客户端收到的错误并确认其他模型工作正常:
(venv)[root@ip-#### django_folder]# python manage.py shell
In [1]: import django
In [2]: from as_app.models import *
In [3]: django.setup()
In [4]: ExternalData
Out[4]: as_app.models.ExternalData
In [5]: MyMap
Out[5]: as_app.models.MyMap
In [6]: ExternalData.objects.all()
Out[6]: []
In [7]: MyMap.objects.all()
/opt/python/run/venv/local/lib/python2.7/site-packages/django/db/backends/utils.pyc in execute(self, sql, params)
62 return self.cursor.execute(sql)
63 else:
---> 64 return self.cursor.execute(sql, params)
65
66 def executemany(self, sql, param_list):
ProgrammingError: relation "as_app_mymap" does not exist
LINE 1: ...app_mymap"."name", "as_app_mymap"."kml_file" FROM "as_app_my...
我尝试使用建议{ - 3}}的--fake标记进行迁移。
还尝试按照建议here手动指定我的迁移运行sqlmigrate。
我尝试过很多搜索与之相关的事情:
django inspectdb没有显示模型
......和类似的短语但没有运气。
让我知道是否还有其他任何有助于尝试或展示的内容。