3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

djangoで直接SQL文を実行する

Last updated at Posted at 2019-02-05

#はじめに
djangoで直接SQL文を実行する手順を記述します。
サンプルアプリケーションはgithubに公開しています。

##前提事項

#djangoで直接SQL文を実行する
djangoでORMを使用してSQL文の実行しますが
OPTIMIZE TABLEやTRUNCATE TABLE等は直接SQL文を実行します

##サービス
データベース接続のカーソルオブジェクトを取得して直接SQL文を実行します

EmployeesService

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の警告が表示されます
PyCharmのPEP8警告

各種設定を行いPEP8の警告を回避します

###Database Tool Window
以下の手順でDatabaseを設定します

  1. メニューの「表示>ツール・ウィンドウ>データベース」を押下する
  2. データソースを押下する
  3. データ・ソースおよびドライバーの設定を行う

データ・ソース設定

###SQL Dialects
以下の手順でSQLダイアレクトを設定します

  1. メニューの「ファイル>設定」を押下する
  2. 設定の「言語&フレームワーク>SQLダイアレクト」で使用するDBMSを指定する

SQLダイアレクト

#参考情報

3
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?