本番環境の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から直接コードを編集。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'sample', # 作成したデータベース名
'USER': 'root', # ログインユーザー名
'HOST': '',
'PORT': '',
}
}
import pymysql
pymysql.install_as_MySQLdb()
このままだとエラーが出るので
- sudo lsof -i:8000
- 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 - ニートがベルマーレ好きすぎて会社起こしたけど今後は未定