Django make migrations issue changing to new Postgres DB

ViaTech

I have not been able to find a solution on SO that has worked for me yet, so I figured I would post a question.

I am running into issues migrating a database schema to a new PostgreSQL DB using django.

Here is the connection for my first DB, it works and I am able to run migrations perfectly fine. This is the DB I was using for testing intially, now I want to use a secondary DB and migrate the schema over.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': '[HOST]',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': '[PW]',
        }
    }

Here is the updated settings:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': '[HOST]',
        'NAME': 'test_mh',       # this is only difference
        'USER': 'postgres',
        'PASSWORD': '[PW]',
        }
    }

I run python3 manage.py makemigrations on the first connection and it is fine.

When I run the same command with the updated DB Name I get exceptions that state my tables do not exist.

  Traceback (most recent call last):
    File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute
      return self.cursor.execute(sql, params)
  psycopg2.ProgrammingError: relation "objects_community" does not exist
  LINE 1: ...y"."state", "objects_community"."date_added" FROM "objects_c...
                                                               ^


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

  Traceback (most recent call last):
    File "manage.py", line 15, in <module>
      execute_from_command_line(sys.argv)
    File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
      utility.execute()
    File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 375, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 316, in run_from_argv
      self.execute(*args, **cmd_options)
    File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 350, in execute
      self.check()
    File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 379, in check
      include_deployment_checks=include_deployment_checks,
    File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 366, in _run_checks
      return checks.run_checks(**kwargs)
    File "/usr/local/lib/python3.6/dist-packages/django/core/checks/registry.py", line 71, in run_checks
      new_errors = check(app_configs=app_configs)
    File "/usr/local/lib/python3.6/dist-packages/django/core/checks/urls.py", line 40, in check_url_namespaces_unique
      all_namespaces = _load_all_namespaces(resolver)
    File "/usr/local/lib/python3.6/dist-packages/django/core/checks/urls.py", line 57, in _load_all_namespaces
      url_patterns = getattr(resolver, 'url_patterns', [])
    File "/usr/local/lib/python3.6/dist-packages/django/utils/functional.py", line 37, in __get__
      res = instance.__dict__[self.name] = self.func(instance)
    File "/usr/local/lib/python3.6/dist-packages/django/urls/resolvers.py", line 533, in url_patterns
      patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
    File "/usr/local/lib/python3.6/dist-packages/django/utils/functional.py", line 37, in __get__
      res = instance.__dict__[self.name] = self.func(instance)
    File "/usr/local/lib/python3.6/dist-packages/django/urls/resolvers.py", line 526, in urlconf_module
      return import_module(self.urlconf_name)
    File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 994, in _gcd_import
    File "<frozen importlib._bootstrap>", line 971, in _find_and_load
    File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 678, in exec_module
    File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    File "/home/viatech/Projects/ExactEstate/ExactEstate/ExactEstate/urls.py", line 21, in <module>
      path('adm/', include('interface_admin.urls')),
    File "/usr/local/lib/python3.6/dist-packages/django/urls/conf.py", line 34, in include
      urlconf_module = import_module(urlconf_module)
    File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
      return _bootstrap._gcd_import(name[level:], package, level)
    File "<frozen importlib._bootstrap>", line 994, in _gcd_import
    File "<frozen importlib._bootstrap>", line 971, in _find_and_load
    File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 678, in exec_module
    File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
    File "/home/viatech/Projects/ExactEstate/ExactEstate/interface_admin/urls.py", line 2, in <module>
      from interface_admin import views
    File "/home/viatech/Projects/ExactEstate/ExactEstate/interface_admin/views.py", line 4, in <module>
      from forms import RegistrationForm, SQLForm, SingleFileUploadForm, ApartmentTableFormBuilder
    File "/home/viatech/Projects/ExactEstate/ExactEstate/forms/ApartmentTableFormBuilder.py", line 10, in <module>
      class ApartmentTableFormBuilder(forms.Form):
    File "/home/viatech/Projects/ExactEstate/ExactEstate/forms/ApartmentTableFormBuilder.py", line 16, in ApartmentTableFormBuilder
      for community in Community.objects.all():
    File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 268, in __iter__
      self._fetch_all()
    File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 1186, in _fetch_all
      self._result_cache = list(self._iterable_class(self))
    File "/usr/local/lib/python3.6/dist-packages/django/db/models/query.py", line 54, in __iter__
      results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
    File "/usr/local/lib/python3.6/dist-packages/django/db/models/sql/compiler.py", line 1065, in execute_sql
      cursor.execute(sql, params)
    File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 100, in execute
      return super().execute(sql, params)
    File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 68, in execute
      return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
    File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
      return executor(sql, params, many, context)
    File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute
      return self.cursor.execute(sql, params)
    File "/usr/local/lib/python3.6/dist-packages/django/db/utils.py", line 89, in __exit__
      raise dj_exc_value.with_traceback(traceback) from exc_value
    File "/usr/local/lib/python3.6/dist-packages/django/db/backends/utils.py", line 85, in _execute
      return self.cursor.execute(sql, params)
  django.db.utils.ProgrammingError: relation "objects_community" does not exist
  LINE 1: ...y"."state", "objects_community"."date_added" FROM "objects_c...
Alasdair

The traceback is telling you that your form ApartmentTableFormBuilder is causing a query Community.objects.all() when the module loads.

When you run migrate or makemigrations on a new database, this causes an error since the objects_community table hasn't been created yet.

The correct solution is to modify your form so that it doesn't cause any queries when the module loads. A hackier solution would be to temporarily comment out the code that is causing the issue until you have run makemigrations and migrate for the first time.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

New Django app initial DB migrations of an existing database

python django issue with the migrations

Django migrations not getting applied on Postgres after changing the datatype of an attribute in models.py

Issue with permissions after restoring Postgres DB to new server

Automatic db router for migrations in django

How to set default column value in the db using django 1.7.3/postgres migrations?

Postgres DB performance issue

Django migrations - how to make it forget?

Django - doesn`t make the migrations

Changing db_table on Django doesn't work after migrations, and adding a user (AbstractUser) foreign key breaks __str__()

Mark specific Django migrations as fake migrations during test DB setup

Django 1.7 Migrations issue with my old project

Django issue during migrations - lazy reference

Django on Kubernetes Deployment: Best practices for DB Migrations

django.db.migrations.exceptions.InconsistentMigrationHistory

django.db.migrations.exceptions.NodeNotFoundError

django.db.migrations.exceptions.CircularDependencyError

ValueError while making db migrations in django

500 internal server error when changing the db from sqlite to postgres with django and nginx

Django models, adding new value, migrations

Using UUIDField in Django keeps creating new migrations

How to make migrations for a reusable Django app?

Airflow parallelism failuer while changing the DB to postgres

No migrations to apply in Django after changing class name in model.py

django db migration failed with postgres

UIButton not changing anything with @selector - new Issue

Issue with Django migrations when deploying in Prod via AWS Beanstalk

How to force migrations to a DB if some tables already exist in Django?

Deleting Migration Files and Getting django.db.migrations.exceptions.NodeNotFoundError: