ruby-on-rails - migrations - remove migration rails
AVISOS para la secuencia después de ejecutar la migración en rieles en la aplicación postgresql (3)
Cuando ejecuto mi migración en la aplicación Rails en postgresql recibí los siguientes AVISOS
NOTICE: CREATE TABLE will create implicit sequence "notification_settings_id_seq" for serial column "notification_settings.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "notification_settings_pkey" for table "notification_settings"
Mi archivo de migración contiene 088_create_notification_settings.rb
class CreateNotificationSettings < ActiveRecord::Migration
def self.up
create_table :notification_settings do |t|
t.integer :user_id
t.integer :notification_id
t.boolean :notification_on
t.boolean :outbound
end
end
def self.down
drop_table :notification_settings
end
end
Me gustaría saber
¿Qué significa esto AVISOS?
¿Cómo evitar estas AVISOS?
¿Cuál será el impacto de tales AVISOS en la Aplicación si no se evitan?
Saludos,
Salil
Además de lo que Mu dijo:
Si no desea ver esos avisos, puede desactivarlos configurando client_min_messages como advertencia (o error).
Esto se puede hacer en el nivel de la sesión, usando set client_min_messages = warning
o en el archivo de configuración del servidor para todas las conexiones:
Las NOTIFICACIONES están relacionadas con la creación de la secuencia y la forma en que Postgresql crea la autoincrementación en la columna de id.
Para responder a las otras preguntas:
Cómo evitar las AVISOS
En el archivo database.yml simplemente incluya min_messages: warning #magic sauce
¿Cuál será el impacto en la aplicación si se ignoran las NOTIFICACIONES?
Básicamente va a aumentar el registro, especialmente si se ejecuta en modo Desarrollo.
Ver http://www.ruby-forum.com/topic/468070 para más detalles
Rails (ActiveRecord para ser más preciso) está agregando una columna de id
a su tabla y haciendo de esta columna la clave principal. Para PostgreSQL, esta columna tendrá tipo serial
. Una columna de serial
es esencialmente un entero de cuatro bytes combinado con una secuencia para proporcionar automáticamente valores de incremento automático.
El primer aviso:
AVISO: CREATE TABLE creará la secuencia implícita "notification_settings_id_seq" para la columna serial "notification_settings.id"
simplemente le está diciendo que PostgreSQL está creando una secuencia detrás de escena para hacer que la columna en serial
funcione.
El segundo aviso:
AVISO: CREATE TABLE / PRIMARY KEY creará el índice implícito "notification_settings_pkey" para la tabla "notification_settings"
simplemente le está diciendo que PostgreSQL está creando un índice para ayudar a implementar la clave principal aunque usted no se lo haya pedido explícitamente.
Simplemente puede ignorar estos avisos, solo son informativos. Si desea suprimirlos, puede agregar min_messages: WARNING
a la sección correspondiente de su database.yml
.