Невозможно выполнить миграцию с помощью mysql и django

#python #mysql #django #docker

#python #mysql #django #docker

Вопрос:

Я разрабатываю веб-приложение с django в docker, в Windows 10. Я получаю сообщение об ошибке при попытке выполнить миграцию модели данных, и я перепробовал все, что видел в других темах этой же темы. Я использую mysql. Ошибка показана ниже: введите описание изображения здесь

Я установил python3-dev, по умолчанию -libmysqlclient-dev, mysqlclient, python3-mysqldb, но он по-прежнему показывает ту же ошибку. Я также пытался установить файл wheel с этого сайта: введите описание ссылки здесь, но это указывает мне, что он несовместим, даже попробовав несколько файлов.

Вы можете увидеть, как создается мой dockerfile:

 FROM python:3.9
ENV PYTHONUNBUFFERED 1
WORKDIR /proyectoCDN
COPY requirements.txt .
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.7.3/wait /wait
RUN chmod  x /wait
RUN apt-get update
RUN apt-get install -y python3-dev
RUN apt-get install -y default-libmysqlclient-dev
RUN apt-get install -y build-essential
RUN apt-get install python3-mysqldb
RUN pip install mysqlclient
# COPY mysqlclient-1.4.6-cp39-cp39-win_amd64 .
# RUN pip install mysqlclient-1.4.6-cp39-cp39-win_amd64.whl
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
EXPOSE 3306
 

настройки для моего проекта django показаны ниже

 DATABASES = {
'default': {
    #'ENGINE': 'django.db.backends.sqlite3',
    #'NAME': BASE_DIR / 'db.sqlite3',

    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'mariadb',
    'USER': 'javier',
    'PASSWORD': 'javier',
    'HOST': 'db',   # Or an IP Address that your database is hosted on
    'PORT': '3306',

 }
}
 

Внутри контейнера я вижу, что я установил следующие компоненты:
установленные пакеты

Я пытался устранить ошибку в течение трех дней, и я не могу продвинуться дальше. Я надеюсь, что вы сможете мне помочь. Заранее благодарю

Комментарии:

1. Вы пытаетесь запустить makemigrations вне контейнера, как показано на скриншоте.

2. Правильно, я должен применить его внутри контейнера приложения. Ошибка новичка. Я думаю, было бы лучше удалить поток.