Ошибка механизма развертывания Django и Digital Ocean
У меня есть приложение Django, развернутое в Digital Ocean, и все это работает с моей базой данных и всем остальным. Теперь я создал этот скрипт, который я хочу использовать для заполнения моей базы данных из некоторых CSV-файлов, которые у меня есть. Всякий раз, когда я запускаю скрипт, я получаю эту ошибку:
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
То есть он не может найти/использовать мою базу данных из скрипта?
Мой сценарий:
import os
import csv
import django
from datetime import datetime
os.environ.setdefault('DEVELOPMENT_MODE', 'False')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'SpotOn.settings')
os.environ["DATABASE_URL"] = 'postgresql://doadmin:password@route:25060/db_name?sslmode=require'
django.setup()
from WebshopDashboard.models import Webshop, Product
def upload_data_from_csv(csv_filepath, webshop_name, default_date_str):
webshop, created = Webshop.objects.get_or_create(name=webshop_name)
print(f"{'Created' if created else 'Using existing'} webshop: {webshop_name}")
# Convert the default_date_str to a date object
default_date = datetime.strptime(default_date_str, '%Y-%m-%d').date()
with open(csv_filepath, mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
product_name = row['Name'].strip()
price = Product.parse_price(row['Price'].strip())
compare_price = Product.parse_price(row['Compare Price'].strip())
specified_date_str = row.get('Specified Date', '').strip()
# If a specified date is provided in the CSV, use it; otherwise, use the default_date
specified_date = datetime.strptime(specified_date_str, '%Y-%m-%d').date() if specified_date_str else default_date
product, created = Product.objects.update_or_create(
name=product_name,
webshop_name=webshop,
defaults={
'price': price,
'compare_price': compare_price,
'default_date': specified_date
}
)
print(f"{'Added' if created else 'Updated'} product: {product_name}")
csv_file_path = 'shop_data_2024-03-29.csv'
date = csv_file_path.split('_')[-1].split('.')[0]
webshop_name = "Shop 1"
upload_data_from_csv(csv_file_path, webshop_name, date)
django.setup()
Который локально работает нормально, учитывая мою локальную базу данных, показанную в settings.py ниже, но при развертывании он продолжает говорить мне об этой проблеме с движком? В DATABASE_URL я просто вставил пропуски, но он предоставлен мне Digital Ocean, так что я не думаю, что я "допустил ошибку" там. Вот мой файл settings.py: