Django. MySQL — различия между версиями

Материал из Я Админ
Перейти к: навигация, поиск
Строка 73: Строка 73:
 
  }
 
  }
  
Ключ ENGINE для базы данных MySQL может быть разным. Кроме того, есть несколько дополнительных клавиш, таких как USER, PASSWORD, HOST и PORT.
+
Выполнить необходимые миграции с помощью  
NAME Этот ключ хранит имя вашей базы данных MySQL.
+
python manage.py makemigrations  
USER В этом ключе хранится имя пользователя вашей учетной записи MySQL, с помощью которой будет подключена база данных MySQL.
+
и  
PASSWORD Этот ключ хранит пароль этой учетной записи MySQL.
+
python manage.py migrate
HOST В этом ключе хранится IP-адрес, на котором размещена ваша база данных MySQL.
+
 
PORT В этом ключе хранится номер порта, на котором размещена ваша база данных MySQL.
+
Наконец, выполните необходимые миграции с помощью python manage.py makemigrations и python manage.py migrate, чтобы завершить настройку.
+
  
 
[[Category:Django]]
 
[[Category:Django]]

Версия 22:05, 22 сентября 2022

Linux

Установка клиента MySQL

pip install mysqlclient

Ошибка установки клиента MySQL

pip install mysqlclient
Collecting mysqlclient
 Using cached mysqlclient-2.1.1.tar.gz (88 kB)
 Preparing metadata (setup.py) ... error
 error: subprocess-exited-with-error
 
 × python setup.py egg_info did not run successfully.
 │ exit code: 1
 ╰─> [16 lines of output]
     /bin/sh: 1: mysql_config: not found
     /bin/sh: 1: mariadb_config: not found
     /bin/sh: 1: mysql_config: not found
     Traceback (most recent call last):
       File "<string>", line 2, in <module>
       File "<pip-setuptools-caller>", line 34, in <module>
       File "/tmp/pip-install-xgyv4lm5/mysqlclient_030ce29558df4cf6bfd1de16e62dd640/setup.py", line 15, in <module>
         metadata, options = get_config()
       File "/tmp/pip-install-xgyv4lm5/mysqlclient_030ce29558df4cf6bfd1de16e62dd640/setup_posix.py", line 70, in get_config
         libs = mysql_config("libs")
       File "/tmp/pip-install-xgyv4lm5/mysqlclient_030ce29558df4cf6bfd1de16e62dd640/setup_posix.py", line 31, in mysql_config
         raise OSError("{} not found".format(_mysql_config_path))
     OSError: mysql_config not found
     mysql_config --version
     mariadb_config --version
     mysql_config --libs
     [end of output]
 
 note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output. 

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Для исправления ошибки:

sudo apt install libmysqlclient-dev
sudo aptitude install python3-dev

https://stackoverflow.com/questions/42640924/troubles-installing-mysqlclient-with-pip3

Настройки подключения Django MySQL

Django по умолчанию использует базу данных SQLite. Настройки подключения для того же выглядят так.

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

Чтобы подключить Django к базе данных MySQL, мы должны использовать следующие настройки.

DATABASES = {
   'default': {
       'ENGINE': 'django.db.backends.mysql', 
       'NAME': 'databaseName',
       'USER': 'databaseUser',
       'PASSWORD': 'databasePassword',
       'HOST': 'localhost',
       'PORT': 'portNumber',
    }
}

Выполнить необходимые миграции с помощью

python manage.py makemigrations 

и

python manage.py migrate