安全でないSQL移行をキャッチします。
$ squabble sql/migration.sql
sql/migration.sql:4:46 ERROR: column "uh_oh" has a disallowed constraint [1004]
ALTER TABLE big_table ADD COLUMN uh_oh integer DEFAULT 0;
^
# Use --explain to get more information on a lint violation
$ squabble --explain 1004
ConstraintNotAllowed
When adding a column to an existing table, certain constraints can have
unintentional side effects, like locking the table or introducing
performance issues.
...Squabbleをエディターと統合して、SQLファイルのエラーをキャッチすることもできます。
$ echo ' SELECT * FROM WHERE x = y; ' | squabble --reporter=plain
stdin:1:15 CRITICAL: syntax error at or near "WHERE"現在、ほとんどのルールは、Postgresとその癖に焦点を合わせています。ただし、SquabbleはANSI SQLを解析でき、他のデータベースに固有の新しいルールが高く評価されています。
$ pip3 install squabble
$ squabble --help注記
Squabbleは、Python 3.5+でのみサポートされています
ソースからインストールしたい場合:
$ git clone https://github.com/erik/squabble.git && cd squabble
$ python3 -m venv ve && source ve/bin/activate
$ python setup.py install
$ squabble --help ルールのリストを表示するには、試してください
$ squabble --list-rules次に、ルールに関するより冗長な情報を表示する(理論的根拠や構成オプションなど)
$ squabble --show-rule AddColumnDisallowConstraints構成ファイルが設置されたら、コマンドラインに明示的に渡すか、自動的に検索することができます。
$ squabble -c path/to/config ...コマンドラインで明示的に与えられていない場合、Squabbleは次の場所で.squabblercという名前のファイルを探します(順序で)。
./.squabblerc(git_repo_root)/.squabblerc~/.squabblerc構成は、SQL Lineコメントをフォームに使用してファイルレベルで適用することもできます-- squabble-enable:RuleNameまたは-- squabble-disable:RuleName 。
たとえば、1つのファイルに対してRuleAを無効にし、 RuleBを有効にするには、これを行うことができます。
-- squabble-disable:RuleA
-- squabble-enable:RuleB config=value array=1,2,3
SELECT email FROM users WHERE ...; Squabbleがファイルで実行されないようにするには、使用-- squabble-disable使用してください。これにより、構文チェックも無効になることに注意してください。このフラグは、コマンドラインまたはファイルの残りの部分で設定された他の構成よりも優先されることに注意してください。
{
"reporter" : " color " ,
"plugins" : [
" /some/directory/with/custom/rules "
],
"rules" : {
"AddColumnsDisallowConstraints" : {
"disallowed" : [ " DEFAULT " , " FOREIGN " , " NOT NULL " ]
}
}
}もちろん、 squabbleはこのスペースの最初のツールではありません。ニーズに合わない場合は、これらのツールのいずれかを検討してください。
SELECTステートメントに重点を置いています。このプロジェクトはなしでは不可能です。
ドキュメントで使用されるロゴ画像は、NounプロジェクトのGianni -Dolce Merdaによって作成されます。