Add external database with parser vacancies
All checks were successful
release / docker (push) Successful in 20s
All checks were successful
release / docker (push) Successful in 20s
This commit is contained in:
parent
c053a5676d
commit
dab73dc4c1
@ -43,6 +43,7 @@ INSTALLED_APPS = [
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'vacancies.main',
|
||||
'vacancies.hh_parser',
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
@ -89,8 +90,19 @@ DATABASES = {
|
||||
"PORT": os.getenv("PG_PORT", "5432"),
|
||||
"CONN_HEALTH_CHECKS": True,
|
||||
},
|
||||
"hh_parser": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": os.getenv("HH_PARSER_PG_NAME", "postgres"),
|
||||
"USER": os.getenv("HH_PARSER_PG_USER", "postgres"),
|
||||
"PASSWORD": os.getenv("HH_PARSER_PG_PASSWORD", "postgres"),
|
||||
"HOST": os.getenv("HH_PARSER_PG_HOST", "localhost"),
|
||||
"PORT": os.getenv("HH_PARSER_PG_PORT", "5432"),
|
||||
"CONN_HEALTH_CHECKS": True,
|
||||
},
|
||||
}
|
||||
|
||||
DATABASE_ROUTERS = ["vacancies.hh_parser.routers.AppRouter"]
|
||||
|
||||
DB_URI = f"postgres://{DATABASES['default']['USER']}:{quote(DATABASES['default']['PASSWORD'])}@{DATABASES['default']['HOST']}:{DATABASES['default']['PORT']}/{DATABASES['default']['NAME']}?sslmode=disable"
|
||||
|
||||
|
||||
|
||||
0
vacancies/hh_parser/__init__.py
Normal file
0
vacancies/hh_parser/__init__.py
Normal file
14
vacancies/hh_parser/admin.py
Normal file
14
vacancies/hh_parser/admin.py
Normal file
@ -0,0 +1,14 @@
|
||||
from django.contrib import admin
|
||||
from vacancies.hh_parser import models
|
||||
|
||||
|
||||
@admin.register(models.Vacancy)
|
||||
class VacancyAdmin(admin.ModelAdmin):
|
||||
def has_add_permission(self, request):
|
||||
return False
|
||||
|
||||
def has_change_permission(self, request, obj=None):
|
||||
return False
|
||||
|
||||
def has_delete_permission(self, request, obj=None):
|
||||
return False
|
||||
6
vacancies/hh_parser/apps.py
Normal file
6
vacancies/hh_parser/apps.py
Normal file
@ -0,0 +1,6 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class HHParserConfig(AppConfig):
|
||||
default_auto_field = 'django.db.models.BigAutoField'
|
||||
name = 'vacancies.hh_parser'
|
||||
31
vacancies/hh_parser/models.py
Normal file
31
vacancies/hh_parser/models.py
Normal file
@ -0,0 +1,31 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Vacancy(models.Model):
|
||||
id = models.CharField(max_length=255, primary_key=True)
|
||||
title = models.CharField(max_length=255, null=True, blank=True)
|
||||
description = models.TextField(null=True, blank=True)
|
||||
min_payment = models.IntegerField(null=True, blank=True)
|
||||
max_payment = models.IntegerField(null=True, blank=True)
|
||||
payment_currency = models.CharField(max_length=255, null=True, blank=True)
|
||||
payment_type = models.CharField(max_length=255, null=True, blank=True)
|
||||
payment_period = models.CharField(max_length=255, null=True, blank=True)
|
||||
work_experience = models.CharField(max_length=255, null=True, blank=True)
|
||||
type_of_employment = models.CharField(max_length=255, null=True, blank=True)
|
||||
work_schedule = models.CharField(max_length=255, null=True, blank=True)
|
||||
work_format = models.CharField(max_length=255, null=True, blank=True)
|
||||
link = models.CharField(max_length=255, null=True, blank=True)
|
||||
address = models.CharField(max_length=255, null=True, blank=True)
|
||||
created_at = models.DateTimeField(null=True, blank=True)
|
||||
processed = models.BooleanField()
|
||||
source = models.CharField()
|
||||
|
||||
objects = models.Manager()
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.source} -> {self.id} {self.title}'
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
db_table = "vacancies"
|
||||
verbose_name_plural = 'Vacancies'
|
||||
23
vacancies/hh_parser/routers.py
Normal file
23
vacancies/hh_parser/routers.py
Normal file
@ -0,0 +1,23 @@
|
||||
class AppRouter:
|
||||
route_app_labels = {"hh_parser"}
|
||||
db_name = "hh_parser"
|
||||
|
||||
def db_for_read(self, model, **hints):
|
||||
if model._meta.app_label in self.route_app_labels:
|
||||
return self.db_name
|
||||
return None
|
||||
|
||||
def db_for_write(self, model, **hints):
|
||||
if model._meta.app_label in self.route_app_labels:
|
||||
return self.db_name
|
||||
return None
|
||||
|
||||
def allow_relation(self, obj1, obj2, **hints):
|
||||
if obj1._meta.app_label in self.route_app_labels and obj2._meta.app_label in self.route_app_labels:
|
||||
return True
|
||||
return None
|
||||
|
||||
def allow_migrate(self, db, app_label, model_name=None, **hints):
|
||||
if app_label in self.route_app_labels:
|
||||
return db == self.db_name
|
||||
return None
|
||||
Loading…
Reference in New Issue
Block a user