Как исправить django.db.utils.OperationalError: (1046, 'База данных не выбрана')

У меня проблема с колонками в базе данных, когда як использую python manage.py migrate. Я хочу написать код для использования DATABASE_URL в docker-compose.yml, как мне решить эту проблему? Я экспериментировал с написанием этих кодов. Не могли бы вы мне немного посоветовать?

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| DatabaseUBU        |
| information_schema |
| mariadb            |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
7 rows in set (0.02 sec)

mysql> create database mariadb;
ERROR 1007 (HY000): Can't create database 'mariadb'; database exists

docker-compose.yml

version: '3.7'
services:
  db:
    image: mariadb:10
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=mariadb
      - MYSQL_DATABASE=mariadb
      - MYSQL_USER=mariadb
      - MYSQL_PASSWORD=mariadb
      - MARIADB_ROOT_PASSWORD=mysecretpassword
    ports:
      - 3306:3306
    volumes:
      - "mysqldata:/var/lib/mysql"  

  web:
    build: .
    restart: always
    command: python manage.py runserver 0.0.0.0:8000
    environment:
      - DATABASE_URL=mariadb+mariadbconnector://user:mariadb@db:3306/mariadb
    ports:
      - "8000:8000"
    depends_on:
      - db
      
volumes:
  mysqldata:

setting.py

import dj_database_url
import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        **dj_database_url.config(default=os.environ.get('DATABASE_URL'))
    }
}

в файле setting.py

import os
DATABASE_URL = os.environ.get('DATABASE_URL', '')

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mariadb', #add name database
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}

if DATABASE_URL:
    import dj_database_url
    DATABASES['default'] = dj_database_url.config(default=DATABASE_URL)
Вернуться на верх