diff --git a/hb_server/apps/develop/tasks.py b/hb_server/apps/develop/tasks.py new file mode 100644 index 0000000..04d8236 --- /dev/null +++ b/hb_server/apps/develop/tasks.py @@ -0,0 +1,25 @@ +from __future__ import absolute_import, unicode_literals +from rest_framework.response import Response +from celery import shared_task + + + +@shared_task +def backup_database(): + """ + 备份数据库 + """ + import os + ret = os.popen('sudo pg_dump -U postgres -d hberp -f /home/lighthouse/hberp_backup.sql') + return Response(ret.read()) + +@shared_task +def reload_server(): + import os # 更新后端 + os.chdir('/home/lighthouse/hberp') + ret = os.popen('sudo git pull && sudo service supervisor reload') + return Response(ret.read()) + + + + \ No newline at end of file diff --git a/hb_server/apps/develop/urls.py b/hb_server/apps/develop/urls.py index 58c675e..c9acf54 100644 --- a/hb_server/apps/develop/urls.py +++ b/hb_server/apps/develop/urls.py @@ -2,7 +2,7 @@ from django.db.models import base from rest_framework import urlpatterns from django.urls import path, include from rest_framework.routers import DefaultRouter -from apps.develop.views import CleanDataView, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateFIFONumber, UpdateLastTestResult, UpdateNeedToOrder, UpdateSpg +from apps.develop.views import BackupDatabase, CleanDataView, ReloadServer, UpdateCuttingView, UpdateEquipState, UpdateFIFOItem, UpdateFIFONumber, UpdateLastTestResult, UpdateNeedToOrder, UpdateSpg urlpatterns = [ path('cleandata/', CleanDataView.as_view()), @@ -13,6 +13,8 @@ urlpatterns = [ path('update_spg/', UpdateSpg.as_view()), path('update_equip_state/', UpdateEquipState.as_view()), path('update_need_to_order/', UpdateNeedToOrder.as_view()), - path('update_fifo_number/', UpdateFIFONumber.as_view()) + path('update_fifo_number/', UpdateFIFONumber.as_view()), + path('reload_server/', ReloadServer.as_view()), + path('backup_database/', BackupDatabase.as_view()) ] diff --git a/hb_server/apps/develop/views.py b/hb_server/apps/develop/views.py index 2412742..0cad10c 100644 --- a/hb_server/apps/develop/views.py +++ b/hb_server/apps/develop/views.py @@ -4,6 +4,7 @@ from rest_framework.decorators import permission_classes from rest_framework.views import APIView from rest_framework.permissions import IsAdminUser from rest_framework.response import Response +from apps.develop.tasks import backup_database, reload_server from apps.inm.models import FIFO, FIFOItem, Inventory, MaterialBatch from apps.mtm.models import Material from apps.pm.models import ProductionPlan, SubProductionPlan @@ -117,4 +118,15 @@ class UpdateFIFONumber(APIView): else: i.number = 'CK' + ranstr(7) i.save() - return Response() \ No newline at end of file + return Response() + +class ReloadServer(APIView): + permission_classes = [IsAdminUser] + def post(self, request): + reload_server() + + +class BackupDatabase(APIView): + permission_classes = [IsAdminUser] + def post(self, request): + backup_database() \ No newline at end of file