Вы должны иметь возможность просто выполнить необработанный SQL, где он вам нужен. Попробуйте это:
sql = "COMMENT ON DATABASE myapp_development IS 'Rails DB for project at c:/some/path/myapp/';"
records_array = ActiveRecord::Base.connection.execute(sql)
Обратите внимание, что вы можете использовать интерполяцию строки (например, "#{value}"
), чтобы включить значения переменных, если вам нужно. У вас есть все выразительные возможности Ruby и возможность запуска любого родного SQL, который вам нужен.
Драгоценный камень MigrationComments дает встроенную поддержку комментариев по объектам миграции. Чтобы установить его, просто добавьте в ваш Gemfile
:
gem 'migration_comments'
После установки, вы можете включать как встроенные комментарии:
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
Вы можете найти драгоценный камень 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-решения, показанного в верхней части ответа.
Где я положил все это срабатывать от 'грабли БД: create'? – mlt
Отличный вопрос. Вы действительно можете сделать это из-за миграции. Итак, ваша первая миграция может заставить это прокомментировать базу данных, а затем начать создавать таблицы. –
Ух! Это может сработать. Но кажется слишком сложным добавить такой код при каждом переносе вручную. Я бы предпочел обернуть его в драгоценный камень и заставить его подключиться к миграции, если что-то подобное возможно. – mlt