I'm really stuck here and i'm a little confused as to why this error is being thrown. I'm running Django 1.10 and the live database is a postgresql DB. I'm not that familiar with postgres. I've been doing all of my development work with sqlite for flexibility.
I've recently added two new fields to my model. They are both IntegerFields
I've not had any issues with them locally. I've not deployed my changes to my live environment and i'm getting the above error.
goal = models.IntegerField(default=1, choices=weight_goal, null=True, blank=True)
I have tried removing the fields, deleting all the migration files and even removing the model itself. However, when i add the field back in it throws the same error.
I've done some research and all i can see is 'Drop the DB and create it again". Well this isn't possible as i'll lose all of the data inside the live DB.
I don't really feel comfortable diving into a live database and trying to add the column manually. I mean, this seems a little OTT anyway?
Note: I'm deploying the box via Heroku
Profile Model:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = CloudinaryField('image', default="thumbnail_mqe6ne")
weight = models.DecimalField(help_text="KG", max_digits=5, default=0, decimal_places=2, validators=[
MinValueValidator(30),
MaxValueValidator(600)
])
height = models.DecimalField(help_text="CM", max_digits=8, default=0, decimal_places=2, validators=[
MinValueValidator(20),
MaxValueValidator(600),
])
gender_option = (
('Male', 'Male'),
('Female', 'Female'),
)
profile_status = (
('Public', 'Public'),
('Private', 'Private'),
)
birth_date = models.DateField(blank=True, verbose_name="Date of Birth")
gender = models.CharField(choices=gender_option, max_length=10)
bio = models.TextField(max_length=300, blank=True)
location = models.CharField(max_length=30, blank=True)
weight_goal = (
(1, 'Weight Loss'),
(2, 'Weight / Muscle weight gain'),
)
goal = models.IntegerField(default=1, choices=weight_goal, null=True, blank=True)
activity = (
(1, 'Mostly inactive or sedentary'),
(2, 'Fairly active'),
(3, 'Moderately active'),
(4, 'Active'),
(5, 'Very active'),
)
activity_level = models.IntegerField(default=1, choices=activity, null=True, blank=True)
intensity = (
(1, 'Very light training'),
(2, 'Moderate intensity'),
(3, 'Moderate to high intensity (1 - 3 hours)'),
(4, 'Very high intensity training (4+ Hours Daily)'),
)
training_intensity = models.IntegerField(default=1, choices=intensity)
status = models.CharField(default="Public", max_length=10, choices=profile_status)
Any help would be much apprecited. Full traceback below:
Environment:
Request Method: GET
Request URL: /
Django Version: 1.10
Python Version: 2.7.13
Installed Applications:
['djangocms_admin_style',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'stats',
'home',
'blog',
'haystack',
'ckeditor_uploader',
'ckeditor',
'django_social_share',
'post_office',
'sorl.thumbnail',
'storages',
'cloudinary',
'django.contrib.staticfiles',
'cloudinary_storage',
'django_cleanup',
'django_instagram',
'embed_video',
'easy_thumbnails',
'filer',
'reversion',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'solid_i18n.middleware.SolidLocaleMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
'django.middleware.locale.LocaleMiddleware']
Traceback:
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
39. response = get_response(request)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in _legacy_get_response
249. response = self._get_response(request)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
187. response = self.process_exception_by_middleware(e, request)
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/app/home/views.py" in get_user_profile
42. profile = Profile.objects.get(user=request.user.id)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method
85. return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py" in get
379. num = len(clone)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py" in __len__
238. self._fetch_all()
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all
1085. self._result_cache = list(self.iterator())
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py" in __iter__
54. results = compiler.execute_sql()
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
835. cursor.execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
79. return super(CursorDebugWrapper, self).execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py" in __exit__
94. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
Exception Type: ProgrammingError at /profile/
Exception Value: column home_profile.goal does not exist
LINE 1: ... "home_profile"."bio", "home_profile"."location", "home_prof...
^