tg-adminコマンドラインツールリファレンス

tg-admin コマンドラインツールはTurboGearsプロジェクトを操作するためのコマンドを提供します。利用可能なコマンドは以下のようにすることでわかります:

tg-admin

基本的なシンタクスは:

tg-admin <command> [options]

たいていのコマンドでは -h--help を引数に追加することでそのコマンドのオプションのリファレンスを見ることができるでしょう。

quickstart -- 新しいプロジェクトを作成する

tg-admin quickstart コマンドは新しいプロジェクトのスケルトンを与えてくれるので、どこに何を置けばよいのか頭を悩ませることなく準備し動かすことができます。quickstartコマンドは、コマンドラインから、あるいはプロンプトとして、2つのオプションを必要とします。

quickstartで利用可能なオプションは:

-n NAME, --name=NAME
 プロジェクト名
-p PACKAGE, --package=PACKAGE
 パッケージ名
--dry-run dry run(実際には何も生成しません)
-s, --sqlalchemy
 SQLObject?の代わりにSQLAlchemyを使います
-t TEMPLATES, --templates=TEMPLATES
 
デフォルトでないテンプレートを使います。
デフォルトではTurbogearsは2つの付加的なテンプレートを提供します:
  • tgbig はより複雑なディレクトリ構造を持ったプロジェクトを生成します
  • tgwidget はカスタムウィジットに基づいたベーステンプレートを提供します

たいていの人はquickstartでプロジェクト名とパッケージ名をプロンプトで入力するだけでよいでしょう。

プロジェクト名は(それをリリースするならば)PyPIで表示されるのに適切な名前にしてください。これはまたeggでも用いられます。

パッケージ名はファイルシステムやPythonが理解できるようなプロジェクトの名前です。Pythonのパッケージ名は一般に小文字ですので、パッケージ名もそれにならって小文字にするとよいでしょう。コマンドラインでパッケージ名を指定しなかった場合、プロジェクト名から適切な名前が推察されて決められます。

dry-runオプションを使うと、実際にどんなファイルやディレクトリが生成されるのかがわかります。

shell -- データベースを簡単に操作する

tg-admin shell コマンドは、ちょうどコマンドラインから python とタイプしたときと同じようにPythonのインタラクティブシェルを提供します。しかしデフォルトの python コマンドと違って、このシェルは model.py ファイルの中にあるすべてのものやデータベースの設定が読み込まれた状態になっています。このことによってデータベースをインタラクティブに操作することがとても簡単になります。

例えば model.py の中に Person というクラスがあったとしましょう。ここですべてのFredericksさんを "Fred" さんと呼ぶことにすると決めたとしましょう:

freds = Person.select_by(first_name="Frederick")
for fred in freds:
  fred.first_name = "Fred"

SQLObject?は一般にデフォルトでautoCommitモードで動きます。これはp.name updateが自動的にデータベースに保存されるということです。もし一回のトランザクションで複数のアップデートをしたいならば、model.pyファイルで定義される hub を使うことができます:

hub.begin()
freds = Person.select_by(first_name="Frederick")
for fred in freds:
    fred.first_name = "Fred"
#hub.rollback()  #rollback does work
hub.commit()
hub.end()

tg-admin shell コマンドはパラメータを持っていません。

sql -- sqlobject-adminのラッパ

SQLObject?はsqlobject-adminというユーティリティを持っています。このsqlobject-adminはデータベースを生成したり、データベースの変更を保存するチェックポイントを記憶したりする、便利な機能をたくさん持っています。

tg-admin sql を実行するのはsqlobject-adminを実行するのと同じですが、tg-admin sqlコマンドはどのデータベースを使うのかを特定するパラメータがいりません(設定ファイルからわかるので)。またモデルオブジェクトがどこにあるのかも自動的にわかります。これはquickstartを実行したときにできた Project.egg-info/sqlobject.txt にメタデータがあります。

tg-admin sql ラッパはただ tg-admin sql create とするだけでデータベースを生成することを可能にしています。

これらデフォルトのパラメータの他にも、tg-admin sqlはsqlobject-adminをラップします。このコマンドのさらなる情報や利用できるオプションについては sqlobject-admin ドキュメント を参照してください。

i18n -- 国際化管理ツール

tg-admin i18n コマンドは国際化データを管理するのに役立ちます。これは toolbox のadmi18nコマンドと同じように動作しますが、コマンドラインからの操作をします。

以下のサブコマンドが利用可能です:

  • add: あるロケールのメッセージカタログを生成する
  • collect: .potファイルへ翻訳可能な文字列を集めるためにソースファイルをスキャンする
  • merge: マスター.potファイルにメッセージカタログを同期する
  • compile: メッセージカタログをコンパイルする(.potから.moへ)
  • clean: バックアップとコンパイルしたファイルを削除する

翻訳する文字列の収集

tg-admin i18n collect コマンドを実行するとプロジェクトのソースファイルの中にある翻訳するための文字列を探し、それらをいわゆる "マスター.potファイル" に書き出します。これはたいていlocales/messages.potになります。

すでにファイルが存在していた場合には、その中身はアップデートされ、バックアップが生成されます。

新しいロケールの追加

プロジェクトに別のロケールを追加するためには tg-admin i18n add コマンドを実行し、 esuk_UA といった適切なロケールコードを与えます。これによってロケールのディレクトリが生成され、メッセージカタログファイルが生成されるでしょう。

カタログデータのコンパイル

tg-admin i18n compile コマンドはすべてのロケールのメッセージカタログファイルを、マシンが理解できる.moファイルにコンパイルします。

翻訳を最新のものにする

tg-admin i18n merge コマンドは新しくマスター.potファイルに追加された文字列を、ロケールのメッセージカタログにコピーして翻訳に漏れがないようにします。

注意: ソースファイルから新しい文字列を得るためには、最初に tg-admin i18n collect を実行する必要があるでしょう。新しい翻訳文字列を追加してから tg-admin i18n compile を実行すれば実際の変更が確認できます。

toolbox -- ウェブツールキット

これは Toolbox を起動します。利用可能なオプションは以下の通りです:

--version プログラムのバージョンナンバーを表示する
-h, --help ヘルプメッセージを表示する
-n, --no-open 自動的にはブラウザを開かない
-c HOST, --add-client=HOST
 指定したipアドレスのクライアントに対し、ツールボックスへの接続を許可する

デフォルトではツールボックスはローカルホストにのみ接続を許可しますが、 -c オプションを使うことで接続を増やすことができます。標準CIDRフォーマットのホスト名でもOKです。

すなわちIPアドレスが192.168.0.1だとすると、 -c 192.168.0.0/24 とすれば192.168.0.*にあるマシンすべてを許可することができますし、 -c 10.0.0.0/16 とすれば10.0.*にあるマシンに、 -c 0.0.0.0/0 とすれば( 推奨しません )すべてのマシンに接続を許可します。