スクリプトのお勉強 失敗談 技術

Django2.2 でのMySQL5.1対応

投稿日:

「対応」と書きながら、思い切り回避ですが。

マイグレーション時のエラー

マイグレーションしたら、以下のエラーになりました。

$ pipenv run python3 manage.py migrate<br>django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL, `update_date` datetime(6) NOT NULL)' at line 1")

調べたら、SQL文の”(6)”という部分は、MySQL 5.6.4 以降での「マイクロ秒 (6 桁) までの精度を持つ」ことができる機能らしいです。

https://dev.mysql.com/doc/refman/5.6/ja/date-and-time-type-overview.html

対処: 対象のSQL文から削除する。。

ぶっちゃけ「μ秒」なんて使わないので、マイグレーション時に発行するSQL文から、”(6)”を消しました。。対応がムゴいのは認めます。。

私の場合はpipenvを使用して、ディレクトリ下に仮想環境を作成して修正しているので、対象のSQL文は以下にあります。

.venv/lib/python3.6/site-packages/django/db/backends/mysql/base.py

class DatabaseWrapper(BaseDatabaseWrapper):
    vendor = 'mysql'
        # 'DateTimeField': 'datetime(6)',
        'DateTimeField': 'datetime',

のように、”(6)”を消したら、一応、マイグレーションは成功しました。

その後の動作も特に問題なく動いているようです。

-スクリプトのお勉強, 失敗談, 技術

執筆者:

関連記事

Pythonパッケージ管理の歴史

歴史っても、あまり過去に興味がないので、、 Pythonのパッケージ管理の歴史は、常に流動的で、そもそもからして、とてもじゃないがまとめて説明できるようなものではないです。 はっきり言って昔からよく分 …

良いタブレットない問題

BMAX maxpad I11が故障した この記事で新しいタブレット買ったのですが、2ヶ月程度で故障しました。。 正確には、指に何も反応しなくなってしまいました。 ダメだったので修理依頼 いろいろして …

SPAMチェック for OCN の アップデート(v0.7.0)

以前、ここで書いたように、SPAMチェックのThunderbirdプラグインを作りました。 そして、Thunderbirdがアップデートしたので、Pluginもアップデートする必要があります。 正直放 …

JSON/YAMLファイル読み込み用ライブラリ比較(Python3)

はじめに Python3でプログラムを作る際、YAML/JSONを読みだす処理を多く作成します。そうすると、データが長く、そして複雑になる時があります。 ネストしてるデータを読みだすと以下のように a …

seaborn + Pandas + Python によるグラフ描画(その1: 準備編)

グラフ描画してみよう 今現在の仕事で、グラフ描画する可能性があるので、少し練習してみようと思います。 題材について 突然ですが、私は確定拠出型年金に加入しています。証券会社はSBI証券 にしています。 …

google オプトアウト Click here to opt-out.