ランダムおすすめ記事

ホームページ作りました

djangoのデータベースをsqlite3からmysqlに切り替えるまで2

 
解決編は3なので参考にしたい方は3まで飛ばして!
 
さて、現在mysqlで利用しているデータをダウンロードするためには
 

本番環境のSQLiteが動いている状態のDjangoプロジェクトで次のコマンドを実行します。

python manage.py dumpdata > db.json

 

本番環境に、MySQLを使えるように設定したDjangoプロジェクト(migrateまで行ったもの)をデプロイし、次のコマンドを実行します。

python manage.py loaddata db.json

 

とのこと。db.jsonでデータをダウンロードしてそのあとデータをmysqlにロードするということだろう。

 

 

 エラー。teratermでcentos7にmysqlをダウンロードしなくてはいけない。

が、しかしコマンドを入力しても、

-bash: db.json: Permission denied

 

権限が無いらしいですよん。・・・でそれもそのはずでどうも

python manage.py dumpdata > db.json

はmysqlが動いていないと動作しないぽい。ローカル環境でmysqlを整えているデータだとうまくいくのに、整えていないデータだとエラーが出るのでそうではないかとあたりをつけた。

ならばとteratermから直接コードを編集。

 

setting.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sample', # 作成したデータベース名
        'USER': 'root', # ログインユーザー名
        'HOST': '',
        'PORT': '',
    }
}

 

manage.py
import pymysql 
pymysql.install_as_MySQLdb()

 

このままだとエラーが出るので

  1. sudo lsof -i:8000
  2. sudo kill -9

で8000番ポートを止めて

 

sudo gunicorn --bind 127.0.0.1:8000 ******.wsgi:application 

 

エラー!!!!!!!!!

 

なんかエラーメッセージを見るとmysqlのパッケージが入ってないから

import pymysql

pymysql.install_as_MySQLdb()

 

ここら辺が読み込めない模様。

さんざん苦労して調べた結果。

MySQL 8.0 GA を CentOS7 にインストールする - 明滅するプログラマの思索

 

これにsudoを加えて

sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

 

 

これでダウンロードできた!

今度こそ!!!

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.

 

 

だめだこりゃ・・・。

 

めげない。

mysqlclientがないんじゃないですか?というエラー文を発見したので

CentOS7 に mysqlclient (MySQL-python fork) をインストールする - CUBE SUGAR CONTAINER

 

sudo pip install mysqlclient

 

それでもエラーが出たがこんな記事があって

gunicorn+Django+MySQLで No module named 'MySQLdb' エラー - Qiita

 

wsgi.pyを改造することに

gunicorn+Django+MySQLで No module named 'MySQLdb' エラー - Qiita

 

import pymysql
pymysql.install_as_MySQLdb()

 を突っ込む。

 

まだエラーが出る・・・が

ModuleNotFoundError: No module named 'mysite'

 

mysql関係のエラーではなくなった。

もういっかいmanage.pyの場所で同じコマンドを打ったらうまくいった!!

もっとも

Server Error (500)

 

とエラーが出るけれど。

 

 

djangoのデータベースをsqlite3からmysqlに切り替えるまで1 - ニートがベルマーレ好きすぎて会社起こしたけど今後は未定

djangoのデータベースをsqlite3からmysqlに切り替えるまで2 - ニートがベルマーレ好きすぎて会社起こしたけど今後は未定

djangoのデータベースをsqlite3からmysqlに切り替えるまで3 - ニートがベルマーレ好きすぎて会社起こしたけど今後は未定