djangoとMariaDB設定 Ubuntuで
django 2.0 ubuntu16.04 mariadb で試しています。
djangoのデフォルルトDBはsqliteになっていいますが、mariaDBに設定してみます。
設定ファイルは別の記事の続きで、
mysite/settings.pyを編集します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
となっているところを
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DB名',
'USER':'ユーザ名',
'PASSWORD':'パスワード',
'HOST':'localhost',
'PORT':'',
}
}
と変更します。次にcreate databaseで空DBを作成してください。別の記事でまとめてありますので、参考ください。
次にpythonのmariadb接続コンポーネントを入れたいのですが、
$ sudo pip3 install mysqlclient
を実行するとなぞのエラーがでます。
mysql_config not found
これは次のコマンドで解決しました。
$ sudo apt-get install libmysqlclient-dev
もう一度
$ sudo pip3 install mysqlclient
を実行です。
次にdjango アプリで
$ python3 manage.py migrate
でmariaDBにテーブルが出来るか確認してOKではないかと思います。デフォルトで以下のテーブルができています。
MariaDB [djangotest]> show tables;
+----------------------------+
| Tables_in_djangotest |
+----------------------------+
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
+----------------------------+
次に、試しにapp1/models.pyファイルを編集してカスタムテーブルを作成してみます。
from django.db import models
class Emp(models.Model):
emp_name = models.CharField(max_length=200)
hire_date = models.DateTimeField('date hired')
以下2つのコマンドでEMPテーブルを作成します。
$ python3 manage.py makemigrations
$ python3 manage.py migrate
MariaDBコンソールからshow tables;してみますと新しいテーブルapp1_empが出来ています。
MariaDB [djangotest]> show tables;
+----------------------------+
| Tables_in_djangotest |
+----------------------------+
| app1_emp |