title: How can I get an old Django project back and running like it was before?
body: <p>I have an old Django project that I haven't kept up, and now I'd like to make necessary changes to work with current versions of Django and related software. I'm not sure what to make of the current error; it appears to me that it doesn't have something under the django.core umbrella, but my Django 1.9.2 installation is up to date:</p>
  
  <pre>[2016-02-14 17:23:10 +0000] [4605] [ERROR] Exception in worker process:
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 515, in spawn_worker
      worker.init_process()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 122, in init_process
      self.load_wsgi()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 130, in load_wsgi
      self.wsgi = self.app.wsgi()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 67, in wsgi
      self.callable = self.load()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/djangoapp.py", line 141, in load
      mod = util.import_module("gunicorn.app.django_wsgi")
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
      __import__(name)
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/django_wsgi.py", line 21, in 
      from django.core.management.validation import get_validation_errors
  ImportError: No module named validation
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 515, in spawn_worker
      worker.init_process()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 122, in init_process
      self.load_wsgi()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 130, in load_wsgi
      self.wsgi = self.app.wsgi()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 67, in wsgi
      self.callable = self.load()
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/djangoapp.py", line 141, in load
      mod = util.import_module("gunicorn.app.django_wsgi")
    File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
      __import__(name)
    File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/django_wsgi.py", line 21, in 
      from django.core.management.validation import get_validation_errors
  ImportError: No module named validation
  [2016-02-14 17:23:10 +0000] [4605] [INFO] Worker exiting (pid: 4605)
  [2016-02-14 17:23:11 +0000] [4597] [INFO] Shutting down: Master
  [2016-02-14 17:23:11 +0000] [4597] [INFO] Reason: Worker failed to boot.
  root@localhost:~/unixytalk# pip install Django==1.9.2
  Requirement already satisfied (use --upgrade to upgrade): Django==1.9.2 in /usr/local/lib/python2.7/dist-packages</pre>
  
  <p>How can I port my project to newer Django? How, for instance, can I provide (or tell that it is provided) django.core.management.validation?</p>
  
  <p>And if I may include another archaic question, what takes the place of a "python manage.py syncdb" to initialize a database to a project an application can take care of?</p>
  
  <p><strong>--UPDATE--</strong></p>
  
  <p>There was something I was walking away from this note thinking...</p>
  
  <p>I posted about a <strong>screenful</strong> of output in which Gunicorn was failing to work appropriately, through an import from django.core.management.validation that was placed there apparently by Gunicorn's process, and not in any sense an initiative on my part to directly interact with that module. (As I had stated, I was trying to get an older system to work with newer code. At least for this project, that does not in any sense include initiative to use django.core.management.validation.)</p>
  
  <p>Not to put too fine a point on it, but the person responding related to my screenful of pasted output as <strong>TL;DR</strong>.</p>
  
  <p>That's not me who has set the pace for <strong>TL;DR</strong>; it's the person helping me.</p>
  
  <p>By a copy-and-paste metric in terms of rendered characters on a "select all and copy," <strong>TL;DR</strong> is 2412 characters.</p>
  
  <p>The hefty release notes, then, being 53714 characters, qualifies as <strong>TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR TL;DR <em>in its last installment alone</em>,</strong> reminiscent of both <a href="https://www.nngroup.com/articles/security-and-user-education/" rel="nofollow">Jakob Nielsen's article on why user education is not the answer to security issues</a>, and the Nix packaging system which is meant to let everything keep its own needed versions of its package system instead of making everything fit a single Procrustean bed of whatever is the currently installed version.</p>
  
  <p>This is kind of deviating from my original question, except that it's not. My original question was intended as, "How can I give a slight sprinkling of pixel dust and reanimate a fairly simple older Django project?" Now things look more like "The fact that I can no longer run what I left as a working project is the tip of the iceberg. Given that I'm a decent Django developer but not a super-focused Django specialist, and I work with many technologies, bitrot looks like a source of a lot of pain."</p>
  
  <p>Ok; enough complaining, although I suspect there's a Programmers post to be found in this.</p>