必要な場所で生のSQLを実行するだけで済みます。あなたが必要な場合は、変数の値が含まれるように、文字列の補間(例えば"#{value}"
)を使用することができます
sql = "COMMENT ON DATABASE myapp_development IS 'Rails DB for project at c:/some/path/myapp/';"
records_array = ActiveRecord::Base.connection.execute(sql)
注:これを試してみてください。あなたはRubyの豊かな表現力と必要なネイティブSQLを実行する能力を備えています。
MigrationComments gemは、移行オブジェクトに関するコメントのインラインサポートを提供します。それをインストールするには、単にあなたのGemfile
にこれを追加します。
def self.up
create_table :users, comment: "User records are stored in this table." do |t|
t.string :canonical_email, comment: "This column contains the email address that has been URL decoded and lowercased, to ensure system-wide uniqueness"
end
end
とスタンドアロンコメントの変更:
def self.up
change_table :users do |t|
t.comment "User records are stored in this table."
t.change_comment :canonical_email, "This column contains the email address that has been URL decoded and lowercased, to ensure system-wide uniqueness"
end
end
あなたは見つけることができます
gem 'migration_comments'
インストールが完了したら、あなたは、インラインコメントの両方を含むことができ、 PgCommentの宝石で、ActiveRecordのような構文でコメントを付けることができます。単にあなたのGemfile
にこれを追加します。
gem 'pg_comment'
そして、あなたはこのようなクールなものを行うことができます:
set_table_comment :users, "User records are stored in this table."
set_column_comment(:users, :canonical_email, "This column contains the email address that has been URL decoded and lowercased, to ensure system-wide uniqueness")
は残念ながら、宝石、そのデータベースのコメント(およびその他のサポートされていないのいずれかとはset_database_comment
はありませんPostgresオブジェクト)では、答えの先頭に表示されている生のSQLソリューションを使用する必要があります。
で、Rails template fileから、例えば、
./lib/tasks/annotate_db.rake
を作成することができますか? – mlt大きな質問です。あなたは実際に移行の中から便利にそれを行うことができます。したがって、最初の移行ではデータベースにコメントを付けてからテーブルを作成することができます。 –
Uhm!それは働くことができます。しかし、手動で移行するたびにそのようなコードを追加するのはあまりにも冗長なようです。むしろそれが可能ならば、私はむしろそれを宝石に包んで、移行のために夢中にしたいと思うだろう。 – mlt