УВЕДОМЛЕНИЯ о последовательности после запуска миграции в rails в приложении postgresql - PullRequest
34 голосов
/ 14 марта 2011

Когда я запускаю свою миграцию в Rails-приложении на postgresql, я получаю следующие уведомления

что означают эти УВЕДОМЛЕНИЯ?

Как избежать этих УВЕДОМЛЕНИЙ?

Какое влияние окажет такое УВЕДОМЛЕНИЕ на Приложение, если его не избежать?

С уважением,

Салил

Ответы [ 3 ]

77 голосов
/ 14 марта 2011

Rails (точнее ActiveRecord) добавляет столбец id в вашу таблицу и делает этот столбец первичным ключом. Для PostgreSQL этот столбец будет иметь тип serial. serial столбец - это, по сути, четырехбайтовое целое число, объединенное с последовательностью для автоматического предоставления автоматически увеличивающихся значений.

Первое уведомление:

УВЕДОМЛЕНИЕ: CREATE TABLE создаст неявную последовательность «tification_settings_id_seq »для последовательного столбца« messages_settings.id »

просто говорит вам, что PostgreSQL создает закулисную последовательность, чтобы сделать функцию столбца serial.

Второе уведомление:

УВЕДОМЛЕНИЕ: CREATE TABLE / PRIMARY KEY создаст неявный индекс «messages_settings_pkey» для таблицы «messages_settings»

просто говорит вам, что PostgreSQL создает индекс, чтобы помочь реализовать первичный ключ, даже если вы его явно не просили.

Вы можете просто игнорировать эти уведомления, они просто информационные. Если вы хотите подавить их, вы можете добавить min_messages: WARNING в соответствующий раздел вашего database.yml.

8 голосов
/ 14 марта 2011

В дополнение к тому, что му сказал:

Если вы не хотите видеть эти уведомления, вы можете отключить их, установив client_min_messages в предупреждение (или ошибку).

Это можно сделать на уровне сеанса, используя set client_min_messages = warning или в файле конфигурации сервера для всех соединений:

http://www.postgresql.org/docs/current/static/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHEN

2 голосов
/ 14 марта 2011

УВЕДОМЛЕНИЯ связаны с созданием последовательности и способом, которым Postgresql создает автоинкремент в столбце id.

Чтобы ответить на другие вопросы:

Как избежать УВЕДОМЛЕНИЙ

В файле database.yml просто включите min_messages: предупреждение # магический соус

Как это повлияет на приложение, если УВЕДОМЛЕНИЯ будут проигнорированы.

По сути, это приведет к увеличению уровня ведения журнала, особенно если он работает в режиме разработки.

Подробнее см. http://www.ruby -forum.com / topic / 468070

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...