Skip to content

future-architect/uroboroSQL-formatter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

uroboroSQL formatter

uroboroSQL formatter

  • SublimeText3
    Package Control Package Control    
  • IntelliJ
    JetBrains plugins JetBrains plugins
  • Eclipse
    Eclipse Marketplace Eclipse Marketplace
    Drag to your running Eclipse* workspace. *Requires Eclipse Marketplace Client  

uroboroSQL formatterは、フューチャーアーキテクトが作成するSQLコーディング規約に従い、SQL文を整形するツールです。
SQL文のインデント、改行、大文字・小文字の区分などを即時変換し、可読性・管理性を高めます。

uroboroSQLのために作られたものですが、DBFluteやDOMAといった2Way-SQLをサポートするライブラリをお使いの方でも利用できます。

利用方法

利用例

Python:

import uroborosqlfmt

sql = u"""
select column1 as column1, --column1
column2 as column2 --column2
,long_column_3 as long_column_3 --column3
from foo_table --table
where column1 = 'sample' --column1
and long_column_3 is not null
"""

formatted = uroborosqlfmt.format_sql(sql)

print(formatted)

出力結果:

SELECT
	COLUMN1			AS	COLUMN1			-- column1
,	COLUMN2			AS	COLUMN2			-- column2
,	LONG_COLUMN_3	AS	LONG_COLUMN_3	-- column3
FROM
	FOO_TABLE	-- table
WHERE
	COLUMN1			=	'sample'	-- column1
AND	LONG_COLUMN_3	IS	NOT NULL

uroboroSQL formatterはPython 2.7 および 3(3.5+)上で利用できます。
uroboroSQL formatter is compatible with Python versions 2.7 and 3 (3.5+).  

SublimeText3のプラグインの利用

Package ControlInstall Packageから
uroboroSQL Formatterを検索しInstallを行ってください。

設定方法や、利用方法は下記のgithubリポジトリのREADMEをご覧ください。

Sublime-uroboroSQL-formatter
日本語Readme

EXEファイルの実行

releaseからusqlfmt.exeをダウンロードし任意のフォルダに配置してください。

Note: 開発中の最新版を試したい場合はbinブランチからバイナリを取得してください。

EXEファイルの実行方法

  1. コマンドプロンプトにて「usqlfmt.exe」があるフォルダまで移動します。
  2. 下記の実行引数を入力しEnterを押下します。 ※引数とファイルパスは適切に変更してください。

実行引数

usqlfmt.exe input_path output_path
usage: usqlfmt [-h] [-v] [-m {file,directory}] [-N] [-B]
               [-c {uroborosql,doma2,uroboro,doma}]
               [-r reserved_words_file_path]
               input_path output_path

uroboroSQL formatter API

positional arguments:
  input_path            整形したいファイルのファイルパス、または、ディレクトリパスを指定する。
  output_path           整形後の成果物を保存するパスを指定する。

optional arguments:
  -h, --help            ヘルプを表示する.
  -v, --version         versionを表示する.
  -m {file,directory}, --mode {file,directory}
                        1つのファイルを対象に整形するか(file)、指定ディレクトリ配下の全ファイルを対象に整形するか(directory)を選択する.指定しない場合"file"として処理する
  -N, --nochange_case   予約語と識別子を大文字に変換しない.
  -B, --escapesequence_u005c
                        SQLでバックスラッシュによるエスケープシーケンスを使用している.
  -c {uroborosql,doma2,uroboro,doma}, --comment_syntax {uroborosql,doma2,uroboro,doma}
                        コメントのシンタックス形式を選択する.
  -r reserved_words_file_path, --reserved_words_file_path reserved_words_file_path
                        予約語一覧ファイルに存在する予約語のみを大文字変換するオプション.
                        予約語一覧ファイルのファイルパスを指定する.
                        なお、予約語のみを大文字にしたい場合は「-N」オプション指定せず、当オプションを指定すること。
                        (予約語一覧ファイルはユーザーが提供すること.また、予約語一覧は「改行区切り」とすること.)

予約語一覧ファイルの例

予約語一覧は「改行区切り」とすること:

SELECT
INSERT
FROM
AS
・・・
・・・

1つのファイルを対象に整形する場合:

usqlfmt.exe -m file C:/Documents/sqlfiles/inputfiles/test.sql C:/Documents/sqlfiles/output/files

ディレクトリを対象に整形する場合(複数ファイル指定):

usqlfmt.exe -m directory C:/Documents/sqlfiles/inputfiles C:/Documents/sqlfiles/output/files

1つのファイルを対象に整形するとともに、予約語のみ大文字に変換する場合:

usqlfmt.exe -m file C:/Documents/sqlfiles/inputfiles/test.sql C:/Documents/sqlfiles/output/files -r C:/Documents/sqlfiles/reserved_words_list.txt

関連情報

uroboroSQL

Future Enterprise Coding Standards

フューチャーアーキテクト株式会社

フューチャーアーキテクト開発者ブログ - Tech Blog

ライセンス

LICENSEをご参照ください。


python-sqlparse library and this code are both on 3-Clause BSD
enum34 library and this code are both on 3-Clause BSD