所以有2个相关的分支机构。 通知和 shipping_options 。
我从notifications
中检查了master
,然后进行了两次重要的数据库更改:
GeneralNotice
模型Notice
模型,添加布尔值dismissed
然后shipping_options
也在与notifications
相同的状态下检出了主人,并且没有进行任何数据库更改,只有少量代码更改。
我第一次从rake db:migrate
切换到notifications
时跑shipping_options
,反之亦然。
目前,当我在notifications
时,并运行rails c
我得到以下内容:
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
(正如预期的那样)然后我切换到shipping_options
,我希望你一直关注,因为这里有令人困惑的部分......
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 (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
2.0.0-p451 :003 >
GeneralNotice
不存在,所以通过根据我的分支更改数据库显然git非常好用和有用Notice
仍有布尔值dismissed
... Whaaaat ???? git是好还是不好? HELP !!!!!! 答案 0 :(得分:1)
答案 1 :(得分:1)
每当您切换分支,并且分支可能包含一组不同的迁移时,最好运行从rake db:reset
文件重新加载数据库模式的schema.rb
。
为确保您的schema.rb
在所有分支中都是最新的,每当您将分支与新迁移合并时,最好运行rake db:migrate:reset
。此rake任务从一开始就运行所有迁移,并将生成的数据库方案写入文件。