Change db backend to postgres

This commit is contained in:
Pavle Portic 2019-03-24 22:36:31 +01:00
parent 8ff6aaf70e
commit 2c2c4ed617
Signed by: TheEdgeOfRage
GPG Key ID: 6758ACE46AA2A849
7 changed files with 77 additions and 25 deletions

View File

@ -11,7 +11,7 @@ djangorestframework = "*"
markdown = "*"
djangorestframework-simplejwt = "*"
gunicorn = "*"
mysqlclient = "*"
psycopg2-binary = "*"
[requires]
python_version = "3.7"

39
backend/Pipfile.lock generated
View File

@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "f3b787be7658e88a80f6cb88c212265407e1a63b3d4fb9590f95c84814c74f97"
"sha256": "36966ef1a38c521518aa98ef2bbe6b86a1dbff761eda4272d59682dbb8e8b441"
},
"pipfile-spec": 6,
"requires": {
@ -56,14 +56,41 @@
"index": "pypi",
"version": "==3.0.1"
},
"mysqlclient": {
"psycopg2-binary": {
"hashes": [
"sha256:425e733b05e359a714d6007c0fc44582be66b63e5a3df0a50949274ae16f4bc6",
"sha256:62e4770b6a797b9416bcf70488365b7d6b9c9066878108499c559293bb464380",
"sha256:f257d250f2675d0ef99bd318906f3cfc05cef4a2f385ea695ff32a3f04b9f9a7"
"sha256:19a2d1f3567b30f6c2bb3baea23f74f69d51f0c06c2e2082d0d9c28b0733a4c2",
"sha256:2b69cf4b0fa2716fd977aa4e1fd39af6110eb47b2bb30b4e5a469d8fbecfc102",
"sha256:2e952fa17ba48cbc2dc063ddeec37d7dc4ea0ef7db0ac1eda8906365a8543f31",
"sha256:348b49dd737ff74cfb5e663e18cb069b44c64f77ec0523b5794efafbfa7df0b8",
"sha256:3d72a5fdc5f00ca85160915eb9a973cf9a0ab8148f6eda40708bf672c55ac1d1",
"sha256:4957452f7868f43f32c090dadb4188e9c74a4687323c87a882e943c2bd4780c3",
"sha256:5138cec2ee1e53a671e11cc519505eb08aaaaf390c508f25b09605763d48de4b",
"sha256:587098ca4fc46c95736459d171102336af12f0d415b3b865972a79c03f06259f",
"sha256:5b79368bcdb1da4a05f931b62760bea0955ee2c81531d8e84625df2defd3f709",
"sha256:5cf43807392247d9bc99737160da32d3fa619e0bfd85ba24d1c78db205f472a4",
"sha256:676d1a80b1eebc0cacae8dd09b2fde24213173bf65650d22b038c5ed4039f392",
"sha256:6b0211ecda389101a7d1d3df2eba0cf7ffbdd2480ca6f1d2257c7bd739e84110",
"sha256:79cde4660de6f0bb523c229763bd8ad9a93ac6760b72c369cf1213955c430934",
"sha256:7aba9786ac32c2a6d5fb446002ed936b47d5e1f10c466ef7e48f66eb9f9ebe3b",
"sha256:7c8159352244e11bdd422226aa17651110b600d175220c451a9acf795e7414e0",
"sha256:945f2eedf4fc6b2432697eb90bb98cc467de5147869e57405bfc31fa0b824741",
"sha256:96b4e902cde37a7fc6ab306b3ac089a3949e6ce3d824eeca5b19dc0bedb9f6e2",
"sha256:9a7bccb1212e63f309eb9fab47b6eaef796f59850f169a25695b248ca1bf681b",
"sha256:a3bfcac727538ec11af304b5eccadbac952d4cca1a551a29b8fe554e3ad535dc",
"sha256:b19e9f1b85c5d6136f5a0549abdc55dcbd63aba18b4f10d0d063eb65ef2c68b4",
"sha256:b664011bb14ca1f2287c17185e222f2098f7b4c857961dbcf9badb28786dbbf4",
"sha256:bde7959ef012b628868d69c474ec4920252656d0800835ed999ba5e4f57e3e2e",
"sha256:cb095a0657d792c8de9f7c9a0452385a309dfb1bbbb3357d6b1e216353ade6ca",
"sha256:d16d42a1b9772152c1fe606f679b2316551f7e1a1ce273e7f808e82a136cdb3d",
"sha256:d444b1545430ffc1e7a24ce5a9be122ccd3b135a7b7e695c5862c5aff0b11159",
"sha256:d93ccc7bf409ec0a23f2ac70977507e0b8a8d8c54e5ee46109af2f0ec9e411f3",
"sha256:df6444f952ca849016902662e1a47abf4fa0678d75f92fd9dd27f20525f809cd",
"sha256:e63850d8c52ba2b502662bf3c02603175c2397a9acc756090e444ce49508d41e",
"sha256:ec43358c105794bc2b6fd34c68d27f92bea7102393c01889e93f4b6a70975728",
"sha256:f4c6926d9c03dadce7a3b378b40d2fea912c1344ef9b29869f984fb3d2a2420b"
],
"index": "pypi",
"version": "==1.4.2.post1"
"version": "==2.7.7"
},
"pyjwt": {
"hashes": [

View File

@ -0,0 +1,23 @@
# Generated by Django 2.1.7 on 2019-03-24 21:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('perks', '0002_auto_20190324_2033'),
]
operations = [
migrations.AlterField(
model_name='perk',
name='name',
field=models.CharField(max_length=64),
),
migrations.AlterField(
model_name='tree',
name='name',
field=models.CharField(max_length=64, unique=True),
),
]

View File

@ -10,7 +10,7 @@ from django.db import models
class Tree(models.Model):
name = models.CharField(max_length=32, unique=True)
name = models.CharField(max_length=64, unique=True)
def __str__(self):
return self.name
@ -20,7 +20,7 @@ class Tree(models.Model):
class Perk(models.Model):
name = models.CharField(max_length=32)
name = models.CharField(max_length=64)
effect = models.TextField()
level = models.IntegerField()
type = models.IntegerField()

View File

@ -49,7 +49,7 @@ class PerkParser():
def parse_perks(self):
for p in self.perks:
perk = self.create_perk(name=p['name'].strip(), effect=p['effect'].strip(), level=int(p['level']), type=0)
perk = self.create_perk(name=p['name'].strip(), effect=p['effect'].strip(), level=int(p['level']), perk_type=0)
for tree_name in p['tree'].split(','):
try:
tree = Tree.objects.get(name=tree_name)
@ -59,8 +59,8 @@ class PerkParser():
p['id'] = Perk.objects.latest('id').id
def create_perk(self, name, effect='', level=1, type=4, trees=None):
new_perk = Perk(name=name, effect=effect, level=level, type=type)
def create_perk(self, name, effect='', level=1, perk_type=4, trees=None):
new_perk = Perk(name=name, effect=effect, level=level, type=perk_type)
new_perk.save()
if trees is not None:
new_perk.trees.add(*trees)
@ -85,11 +85,11 @@ class PerkParser():
except Perk.DoesNotExist:
if re.match(class_pattern, req_name):
req = self.create_perk(name=req_name, level=0, type=1)
req = self.create_perk(name=req_name, level=0, perk_type=1)
elif re.match(race_pattern, req_name):
req = self.create_perk(name=req_name, level=0, type=2)
req = self.create_perk(name=req_name, level=0, perk_type=2)
elif re.match(ability_pattern, req_name):
req = self.create_perk(name=req_name, level=0, type=3)
req = self.create_perk(name=req_name, level=0, perk_type=3)
elif 'Skill Focus' in req_name or 'Ability Focus' in req_name:
req_match = re.match(requirement_pattern, req_name)
req_tree = Tree.objects.get(name=req_match.group(2))
@ -97,9 +97,9 @@ class PerkParser():
req_base_name = req_match.group(1)
base_req = Perk.objects.get(name=req_base_name)
req = self.create_perk(name=req_name, effect=base_req.effect, level=base_req.level, type=base_req.type, trees=[req_tree])
req = self.create_perk(name=req_name, effect=base_req.effect, level=base_req.level, perk_type=base_req.type, trees=[req_tree])
else:
req = self.create_perk(name=req_name, level=0, type=4)
req = self.create_perk(name=req_name, level=0, perk_type=4)
perk.parents.add(req)
def output_transform(self):

View File

@ -82,8 +82,9 @@ WSGI_APPLICATION = 'perktree.wsgi.application'
DATABASES = {
'default': {
'ENGINE': os.environ.get('DB_ENGINE', 'django.db.backends.sqlite3'),
'NAME': os.path.join(BASE_DIR, os.environ.get('DB_NAME', 'db.sqlite3')) if ENV == 'dev' else os.environ.get('DB_NAME', ''),
'USER': os.environ.get('DB_USER', ''),
# 'NAME': os.path.join(BASE_DIR, os.environ.get('DB_NAME', 'db.sqlite3')) if ENV == 'dev' else os.environ.get('DB_NAME', ''),
'NAME': os.environ.get('DB_NAME', 'perktree'),
'USER': os.environ.get('DB_USER', 'root'),
'PASSWORD': os.environ.get('DB_PASSWORD', ''),
'HOST': os.environ.get('DB_HOST', ''),
'PORT': os.environ.get('DB_PORT', ''),

View File

@ -1,14 +1,15 @@
version: "3"
services:
db:
image: mariadb
image: postgres:alpine
container_name: perktree-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_DATABASE: perktree
POSTGRES_USER: root
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: perktree
volumes:
- /mnt/perktree/db:/var/lib/mysql
- /mnt/perktree/db:/var/lib/postgresql/data
frontend:
build:
@ -35,12 +36,12 @@ services:
DJANGO_ADMIN_MAIL: ${DJANGO_ADMIN_MAIL}
DJANGO_ADMIN_PASS: ${DJANGO_ADMIN_PASS}
APP_HOST: perktree.theedgeofrage.com
DB_ENGINE: django.db.backends.mysql
DB_ENGINE: django.db.backends.postgresql
DB_NAME: perktree
DB_USER: root
DB_PASSWORD: ${DB_PASSWORD}
DB_HOST: db
DB_PORT: 3306
DB_PORT: 5432
PERKS_DIR: /app/static/perks
links:
- db