簡體   English   中英

我無法在 heroku 上遷移。 使用 Django MySQL

[英]I can't migrate on heroku. Using Django MySQL

我無法在 Heroku 上遷移。 使用 Django 和 MySQL。 我不知道它有什么問題。 setting_mysql.py 有錯誤?

我收到這樣的錯誤。

(base) mypc@mypc website % heroku run python manage.py migrate
Running python manage.py migrate on ⬢ myapp... up, run.3308 (Free)
Traceback (most recent call last):
  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/base/base.py", line 217, in ensure_connection
    self.connect()
  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/base/base.py", line 195, in connect
    self.connection = self.get_new_connection(conn_params)
  File "/app/.heroku/python/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 227, in get_new_connection
    return Database.connect(**conn_params)
  File "/app/.heroku/python/lib/python3.9/site-packages/MySQLdb/__init__.py", line 130, in Connect
    return Connection(*args, **kwargs)
  File "/app/.heroku/python/lib/python3.9/site-packages/MySQLdb/connections.py", line 185, in __init__
    super().__init__(*args, **kwargs2)
MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")

您提供了錯誤的數據庫訪問憑據,因為如果我沒記錯的話 - 您無法通過套接字連接到數據庫。

試試官方解決方案:

在 Heroku 上,敏感憑據作為配置變量存儲在環境中。 這包括數據庫連接信息(名為 DATABASE_URL),傳統上在 Django 應用程序中硬編碼。

django-heroku package 自動配置您的 Django 應用程序以在 Heroku 上工作。 它與 Django 2.0 應用程序兼容。

它提供了許多細節,包括讀取 DATABASE_URL、日志配置、Heroku CI 兼容的 TestRunner,並自動將“靜態文件”配置為“正常工作”。

安裝 django-heroku:

pip install django-heroku

請務必將 django-heroku 添加到您的 requirements.txt 文件中。

將以下導入語句添加到settings.py的頂部:

import django_heroku

然后將以下內容添加到 settings.py 的底部:

激活 Django-Heroku: django_heroku.settings(locals())

部署,你應該很高興!

我正在使用這個解決方案,它對我有用。 另一種選擇是將數據庫面板中的數據庫訪問數據復制並手動放入settings.py

地獄更瘦,

我有類似的問題。 您能否分享 Heroku 的“數據庫”部分 settings.py?

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM