2

データベースを最初に作成するときに、データベースに特定のデフォルト値を設定したいと考えています。データベースが作成された後に一度だけ実行されるように、そのために利用できるフック/関数はありますか?

1 つの方法は、インスペクターを使用して、テーブル/データベースが使用可能かどうかを確認し、テーブルを作成する前にフラグを設定することです。次に、このフラグを使用してデフォルト値を挿入します。

それを行うより良い方法はありますか?

4

1 に答える 1

2

私は通常install、この目的のために呼び出される専用の関数を持っています。この関数で必要なことは何でもできるからです。ただし、アプリケーションを起動して実行するだけの場合は、イベントBase.metadata.create_allを使用できます。1 つのオブジェクトまたは複数のオブジェクトafter_createが得られるかどうかをテストし、それに応じて処理する必要があります。このコンテキストでは、データの挿入に使用できるオブジェクトも取得できます。トランザクション管理とデータベースのサポートによっては、挿入が失敗した場合にテーブルの作成がロールバックされることさえあります。metadatatableconnection

必要に応じて、どちらの方法でもかまいませんが、作成後にデータを挿入するだけでよいと確信している場合は、実際にはイベントの方法が最適です。

于 2013-09-30T08:41:13.287 に答える