python - Django: how to use two different databases with Wagtail CMS -


inside django project, have 1 app, otherapp, hits postgres database on remote server contains scraped data. have second app, content, hits different postgres database on same remote server, , contains pages i'd have served through wagtail cms.

i installed wagtail locally using these instructions (i did not use wagtail installer). got working locally. then, did pg_dump of local database , did psql db2 < db2dumpfile.sql on remote database server.

each of apps works fine locally in isolation, can't them work together. thought use database router specify database want used retrieve different types of data.

but, when put database router settings file, starts fail. how can fix this? need declare wagtailcore somewhere else in project?

settings.py:

databases = {     'default': {         'engine': 'django.db.backends.postgresql_psycopg2',         'name': 'db1',         'user': db_username,         'password': db_password,         'host': host,         'port': port      },     'cms': {         'engine': 'django.db.backends.postgresql_psycopg2',         'name': 'db2',         'user': db_username,         'password': db_password,         'host': host,         'port': port      }  } database_routers = [ 'projectname.routers.findrouter',] 

routers.py:

import os django.conf import settings import socket class findrouter(object):     def db_for_read(self, model, **hints) :         if model._meta.app_label == 'content' :             return 'cms'         return none     def db_for_read(self, model, **hints):         if model._meta.app_label == 'content' :             return 'cms'         return none     def db_for_write(self, model, **hints):         if model._meta.app_label == 'content' :             return 'cms'         return none     def allow_relation(self, obj1, obj2, **hints):         if obj1._meta.app_label == 'content' or obj2._meta.app_label == 'content':             return true         return none     def allow_migrate(self, db, app_label, model=none, **hints):         if app_label == 'content' :             return db == 'cms'         return none 

this error getting when runserver:

environment:   request method: request url: http://127.0.0.1:8000/cms/  django version: 1.9 python version: 2.7.10 installed applications: ['django.contrib.admin',  'django.contrib.auth',  'django.contrib.contenttypes',  'django.contrib.sessions',  'django.contrib.messages',  'django.contrib.staticfiles',  'wagtail.wagtailforms',  'wagtail.wagtailredirects',  'wagtail.wagtailembeds',  'wagtail.wagtailsites',  'wagtail.wagtailusers',  'wagtail.wagtailsnippets',  'wagtail.wagtaildocs',  'wagtail.wagtailimages',  'wagtail.wagtailsearch',  'wagtail.wagtailadmin',  'wagtail.wagtailcore',  'modelcluster',  'compressor',  'taggit',  'otherapp',  'content'] 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.auth.middleware.sessionauthenticationmiddleware',  'django.contrib.messages.middleware.messagemiddleware',  'django.middleware.clickjacking.xframeoptionsmiddleware',  'django.middleware.security.securitymiddleware',  'wagtail.wagtailcore.middleware.sitemiddleware',  'wagtail.wagtailredirects.middleware.redirectmiddleware']    traceback:  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response   123.                 response = middleware_method(request)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/wagtail/wagtailcore/middleware.py" in process_request   11.             request.site = site.find_for_request(request)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/wagtail/wagtailcore/models.py" in find_for_request   122.                 return site.objects.get(hostname=hostname)  # site.doesnotexist here goes final except clause  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/models/manager.py" in manager_method   122.                 return getattr(self.get_queryset(), name)(*args, **kwargs)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/models/query.py" in   381.         num = len(clone)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/models/query.py" in __len__   240.         self._fetch_all()  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all   1074.             self._result_cache = list(self.iterator())  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/models/query.py" in __iter__   52.         results = compiler.execute_sql()  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql   852.             cursor.execute(sql, params)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/backends/utils.py" in execute   79.             return super(cursordebugwrapper, self).execute(sql, params)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/backends/utils.py" in execute   64.                 return self.cursor.execute(sql, params)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/utils.py" in __exit__   95.                 six.reraise(dj_exc_type, dj_exc_value, traceback)  file "/users/username/.virtualenvs/bail/lib/python2.7/site-packages/django/db/backends/utils.py" in execute   64.                 return self.cursor.execute(sql, params)  exception type: programmingerror @ /cms/ exception value: relation "wagtailcore_site" not exist line 1: ...ge_id", "wagtailcore_site"."is_default_site" "wagtailco...                                                              ^ 

i gave , put wagtail tables first database, , 2 parts of application working fine.


Comments

Popular posts from this blog

ruby - Trying to change last to "x"s to 23 -

jquery - Clone last and append item to closest class -

c - Unrecognised emulation mode: elf_i386 on MinGW32 -