Render.com Site App.py Backup -Funktion funktioniert nichtPython

Python-Programme
Anonymous
 Render.com Site App.py Backup -Funktion funktioniert nicht

Post by Anonymous »

Also habe ich diese Website, die ich auf Render einsetzt. Ich habe meinen Code in ein Github -Repository gedrückt und Render nimmt den Code von dort aus. Mein Plan war es, Benutzerdaten in JSON -Dateien zu speichern, die sich in einem Datenordner befanden, aber das Problem, das ich erkannte, besteht darin, dass Rendern seinen Code jeweils durch den alten Code aus meinem Github -Repository ersetzt, einschließlich des alten Datenordners, in dem noch keine Benutzerdaten enthalten sind. Meine Idee war es, eine Funktion in meiner App zu erstellen. Wenn meine Render -Site seinen Code durch den GitHub ersetzt, enthält er weiterhin alle Benutzerdaten. Ich habe zuerst versucht, diese Sicherung auf meinem lokalen Computer zu funktionieren, indem ich den GitHub -Datenordner durch einen auf meinem Computer ersetzt habe und es funktionierte. Hier ist dieser Code: < /p>

Code: Select all

import os
import shutil
import subprocess

def backup():
GITHUB_USERNAME = "My github username"
REPO_NAME = "Name of my repository"
BRANCH_NAME = "main"

GITHUB_TOKEN = 'github token name' # for when I put this on render I saved the token as an environment variable: os.getenv("GITHUB_TOKEN")

repo_url = f"https://{GITHUB_USERNAME}:{GITHUB_TOKEN}@github.com/{GITHUB_USERNAME}/{REPO_NAME}.git"

repo_path = "/tmp/myrepo"
folder_to_add = "data/"
local_folder_path = f"pathtofolder/{folder_to_add}"

if os.path.exists(repo_path):
shutil.rmtree(repo_path)
subprocess.run(["git", "clone", repo_url, repo_path], check=True)

os.chdir(repo_path)

repo_folder_path = os.path.join(repo_path, folder_to_add)
if os.path.exists(repo_folder_path):
shutil.rmtree(repo_folder_path)

shutil.copytree(local_folder_path, repo_folder_path)

subprocess.run(["git", "add", "."], check=True)
subprocess.run(["git", "commit", "-m", f"Replaced {folder_to_add} with a new version"], check=True)
subprocess.run(["git", "push", "origin", BRANCH_NAME], check=True)

backup()
< /code>
Ich habe dann versucht, es in meine App.py auf meinem Github -Repository zu setzen, dann meine Website neu einzulegen und zu testen, und als ich ein Konto erstellt habe, funktionierte es. Ich ging zum Github -Repository und sicher genug, dass der Datenordner geändert wurde, um die Benutzerinformationen in eine JSON -Datei aufzunehmen. Aber wenn ich dann versuchte, Benutzerdaten erneut zu ändern, wobei ein anderes Konto erstellt oder die aktuelle Löschung gelöscht oder Benutzerinformationen geändert wurde, gab es mir einen internen Serverfehler von 500 internem Server. Und in meinen Render-Protokollen habe ich diese Nachricht erhalten: < /p>
In '/tmp/myrepo'......br /> Fatal: Das aktuelle Arbeitsverzeichnis kann nicht lesen: Keine solche Datei oder Verzeichnis
[2025-03-16 14: 05: 32,558] Fehler in app: AUTCE: AUTSAUS.  Funktion, die in meiner App.py:
wardef backup():

GITHUB_USERNAME = "Github username"

REPO_NAME = "Name of repository"

BRANCH_NAME = "main"

GITHUB_TOKEN = os.getenv('GITHUB_TOKEN')

if not GITHUB_TOKEN:

raise ValueError("There is no github token in an environment variable.")

repo_url = f"https://{GITHUB_USERNAME}:{GITHUB_TOKEN}@github.com/{GITHUB_USERNAME}/{REPO_NAME}.git"

repo_path = "/tmp/myrepo"

folder_to_add = "data/"

local_folder_path = f"/opt/render/project/src/{folder_to_add}"

if os.path.exists(repo_path):

shutil.rmtree(repo_path)

subprocess.run(["git", "clone", repo_url, repo_path], check=True)

os.chdir(repo_path)

repo_folder_path = os.path.join(repo_path, folder_to_add)

if os.path.exists(repo_folder_path):

shutil.rmtree(repo_folder_path)

shutil.copytree(local_folder_path, repo_folder_path)

subprocess.run(["git", "add", "."], check=True)

subprocess.run(["git", "config", "--global", "user.name", "Your Name"], check=True)

subprocess.run(["git", "config", "--global", "user.email", "your-email@example.com"], check=True)

subprocess.run(["git", "commit", "-m", f"Replaced {folder_to_add} with a new version"], check=True)

subprocess.run(["git", "push", "origin", BRANCH_NAME], check=True)
Wenn jemand weiß, wie man dieses Problem behebt, würde ich es wirklich zu schätzen wissen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post