Django after migration UndefinedColumn error in production

525 views
Skip to first unread message

red

unread,
Oct 22, 2019, 8:32:18 AM10/22/19
to django...@googlegroups.com

Hi everyone,


I have a website in production. I have an app, with a model. It contained a markdown_file attribute:

markdown_file=models.FileField(upload_to='/media/')

But since the number of file is limited, I decided to make it a markdown_filename attribute with a choices selection box:

markdown_filename=models.CharField(max_length=30,null=True,blank=True,choices=MENU_MARKDOWN_FILE_CHOICES)

Therefore, I modified this model and made migrations locally. I pushed the code in production and run:

python manage.py migrate

After I checked with showmigrations and sqlmigrate, that the modification I made were there. Then, I checked in the database, that the fields were correctly modified. But, I still get this error, when trying to access the website:

ERROR:django.request:Internal Server Error: /
Traceback (most recent call last):
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedColumn: column showcase_subpage.markdown_file does not exist
LINE 1: ...bpage"."slug", "showcase_subpage"."html_content", "showcase_...
                                                             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "./showcase/views.py", line 10, in home
    return render(request, 'showcase/home.html', context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/shortcuts.py", line 36, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 171, in render
    return self._render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 937, in render
    bit = node.render_annotated(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
    return self.render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
    return self.nodelist.render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 937, in render
    bit = node.render_annotated(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
    return self.render(context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/template/defaulttags.py", line 166, in render
    len_values = len(values)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/models/query.py", line 256, in __len__
    self._fetch_all()
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/models/query.py", line 1242, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/models/query.py", line 55, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1100, in execute_sql
    cursor.execute(sql, params)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/srv/data/web/vhosts/default/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: column showcase_subpage.markdown_file does not exist
LINE 1: ...bpage"."slug", "showcase_subpage"."html_content", "showcase_...
                                                             ^

The markdown_file field has been modified and renamed as markdown_filename. It has been correctly specified in the migrations. The modification is effective in the database. I tested locally (it works fine locally), to make sure, I don’t have anymore code calling markdown_file attribute. I also tried clearing the migrations history and the database, to rebuilt it as new, but, the problem is still there. I can’t see why, this former attributes is still queried, though the migrations went OK, without any error.

wd

unread,
Oct 22, 2019, 11:58:36 PM10/22/19
to django...@googlegroups.com
hi,

You may need to check that the database django connect to is the same as you checked that the column is exists?

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/4ff82558-df2a-85a7-e10c-fd567c768862%40riseup.net.

red

unread,
Oct 23, 2019, 6:48:03 AM10/23/19
to django...@googlegroups.com

Hi,

Yes, it connects to the same database. I only have one accessible database in the production environment and the administration interface works fine for the other models I have, it crashes only when I try to access that specific model or when trying to access the website.

Red.

Reply all
Reply to author
Forward
0 new messages