#はじめに
djangoで直接SQL文を実行する手順を記述します。
サンプルアプリケーションはgithubに公開しています。
##前提事項
- サンプルアプリケーションの詳細はバッチアプリケーション(django)を参照ください
#djangoで直接SQL文を実行する
djangoでORMを使用してSQL文の実行しますが
OPTIMIZE TABLEやTRUNCATE TABLE等は直接SQL文を実行します
##サービス
データベース接続のカーソルオブジェクトを取得して直接SQL文を実行します
from django.db import transaction, connection
from django.utils import timezone
from django.utils.timezone import localtime
from app_pypeach_django.application.enums.gender_type import GenderType
from app_pypeach_django.application.service.app_logic_base_service import AppLogicBaseService
from app_pypeach_django.models import Employees
"""
employeesテーブルを操作するクラスです。
"""
class EmployeesService(AppLogicBaseService):
def __init__(self):
super().__init__()
@staticmethod
@transaction.atomic()
def truncate_employees():
"""
employeesをトランケートする
"""
cursor = connection.cursor()
cursor.execute('TRUNCATE TABLE {0}'.format(Employees._meta.db_table))
##PEP8の警告(PyCharm)
PyCharmを使用して直接SQL文を記述した場合、PEP8の警告が表示されます
各種設定を行いPEP8の警告を回避します
###Database Tool Window
以下の手順でDatabaseを設定します
- メニューの「表示>ツール・ウィンドウ>データベース」を押下する
- データソースを押下する
- データ・ソースおよびドライバーの設定を行う
###SQL Dialects
以下の手順でSQLダイアレクトを設定します
- メニューの「ファイル>設定」を押下する
- 設定の「言語&フレームワーク>SQLダイアレクト」で使用するDBMSを指定する
#参考情報