I want to run jobs by connecting to 2 different databases and run them in django admin.
First database is default sqlite and the other is postgresql. I want to print jobs to a table in pg, when I go to admin page the table name also looks different, when I click inside, see
ProgrammingError at /admin/stock_crawling/userproperties/<br>relation "stock_crawling_userproperties" does not exist
LINE 1: SELECT I get COUNT(*) AS "__count" FROM "stock_crawling_userproper...
Also when I do py manage.py migrate, get
django.db.utils.ProgrammingError: relation "django_content_type" does not exist
#router.py
class ExampleDatabaseRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label == 'stock_crawling':
return 'monodb'
return 'default'
def db_for_write(self, model, **hints):
if model._meta.app_label == 'stock_crawling':
return 'monodb'
return None
def allow_relation(self, obj1, obj2, **hints):
if obj1._meta.app_label == 'stock_crawling' or obj2._meta.app_label == 'stock_crawling':
return True
elif 'stock_crawling' not in [obj1._meta.app_label, obj2._meta.app_label]:
return True
return False
def allow_migrate(self, db, app_label, model_name=None, **hints):
if app_label == 'stock_crawling':
return db == 'default'
return None
#models.py
from django.db import models
class UserProperties(models.Model):
UserId = models.IntegerField(),
Key = models.TextField(),
Value = models.TextField(),
CreatedDate = models.DateTimeField(),
ModifiedDate = models.DateTimeField()
#admin.py
from django.contrib import admin
from stock_crawling import models as job_models
from django.db.models.base import ModelBase
for name, var in job_models.__dict__.items():
if type(var) is ModelBase:
admin.site.register(var)
#settings.py
DATABASE_ROUTERS = ["crawling_server.router.ExampleDatabaseRouter"]
I also set 2 databases in settings.py