Entonces hay 2 twigs relevantes. notifications y shipping_options .
Comprobé las notifications
fuera del master
y luego realicé dos cambios importantes en la database:
GeneralNotice
creado GeneralNotice
Notice
existente , agregando un boolean dismissed
Luego, shipping_options
también se desprotegió del maestro en el mismo estado que las notifications
, y no se realizaron cambios en la database, solo cambios de código menores.
Ejecuté rake db:migrate
la primera vez que cambie de notifications
a notifications
de shipping_options
y lo mismo viceversa.
Por el momento, cuando estoy en las notifications
, y corro rails c
obtengo lo siguiente:
2.0.0-p451 :001 > Notice => Notice(id: integer, title: string, description: text, created_at: datetime, updated_at: datetime, kind: string, general_notice_id: integer, shop_id: integer, dismissed: boolean) 2.0.0-p451 :002 > GeneralNotice => GeneralNotice(id: integer, title: string, description: text, created_at: datetime, updated_at: datetime) 2.0.0-p451 :003 >
dismissed
(como se esperaba) Luego, cambio a opciones de shipping_options
y espero que lo haya estado siguiendo porque aquí viene la parte confusa …
2.0.0-p451 :001 > Notice => Notice(id: integer, title: string, description: text, created_at: datetime, updated_at: datetime, kind: string, general_notice_id: integer, shop_id: integer, dismissed: boolean) 2.0.0-p451 :002 > GeneralNotice NameError: uninitialized constant GeneralNotice from (irb):2 from /Users/marcoprins/.rvm/gems/ruby-2.0.0-p451/gems/railties-3.2.13/lib/rails/commands/console.rb:47:in `start' from /Users/marcoprins/.rvm/gems/ruby-2.0.0-p451/gems/railties-3.2.13/lib/rails/commands/console.rb:8:in `start' from /Users/marcoprins/.rvm/gems/ruby-2.0.0-p451/gems/railties-3.2.13/lib/rails/commands.rb:41:in `<top (requinetworking)>' from script/rails:6:in `require' from script/rails:6:in `<main>' 2.0.0-p451 :003 >
GeneralNotice
no existe, por lo que aparentemente git está siendo muy amable y servicial al cambiar la database de acuerdo con mi twig Notice
todavía tiene un boolean dismissed
… Whaaaat ???? ¿Está siendo bueno o no? ¡¡¡¡¡¡AYUDA!!!!!! Dado que ha ejecutado la migration en la primera sucursal (notifications), la columna se agregó a la tabla de la database, por lo tanto, se mostrará si inspecciona. El método de inspección funciona directamente con la tabla de la database, reflejando las columnas (attributes).
GeneralNotice: si comtesting su database, contendría la tabla (general_notices) pero dado que el file general_notice.rb en el que se define GeneralNotice no está presente en esta twig, arroja un error constante no inicializado.
Eche un vistazo a esto y esto para algunas ideas para poner su db bajo control de versión.
Cada vez que cambie de bifurcación, y las bifurcaciones pueden contener un set de migraciones diferentes, es aconsejable ejecutar rake db:reset
que schema.rb
esquema de la database desde el file schema.rb
.
Para asegurarse de que su schema.rb
esté actualizado en todas las sucursales, es una buena idea ejecutar rake db:migrate:reset
cada vez que fusiona sucursales con nuevas migraciones. Esta tarea de rake ejecuta todas sus migraciones desde el principio y escribe el esquema de database resultante en un file.