遇到的bug 以及解bug的方法

解决bug时,火急火燎,都没想清楚自己该怎么操作,就操作,结果解决了一个bug,又发明了一个因为自己焦虑创造出来的bug。
事实重现:





!!!没按顺序操作三兄弟,还多使用其中一个三兄弟一次,导致了如下bug:


!!没看完助教的解说就火急火燎地用了git stash

!!!!结果后悔了

!!!以至于都忘记了,要刷新一下网页,看是否正常,就吃饭去了!
结果吃完饭回来刷新后,发现又有bug了!

最后显示的bug是一个超级bug,为什么说它是超级bug呢,因为:
1.google上搜得到同样的办法,但给出的方法都解决不了;
2.助教slack上给出的方法也没有很快解决;
方法一: bin/rails db:migrate RAILS_ENV=development
方法二:

+rake db:drop
+ rake db:create
+ rake db:migrate

3.最后是因为参加线上meet up,在答疑环节和Nic助教共享了屏幕,在他的帮助下花了15分钟的时间,最终解决了。

下面我就具体来说说解决这个超级bug的过程:

bug截图如下:

解决过程:
step1:
+输入: rake db:drop db:create: db:migrate
终端报错,截图如下:


+输入: rake db:migrate
终端报错,截图如下:

step2:
+查看atom 的db 文件夹,发现有两个

+点击右键删除,其中一个文件
+终端输入:rake db:migrate
+终端输入: rails g migration add_user_id_to_movies
+修改:

加入: add_column :movies, :user_id, :integer
+终端输入:rake db:migrate
终端报错:

step3:
输入:rake db:drop db:create db:migrate
报错:

step4:
+删除db 文件夹里的


+终端输入: rails g migration add_user_id_to_movies
+修改:

加入: add_column :movies, :user_id, :integer
+终端输入:rake db:migrate
结果如下:

总结解决bug的核心思路
产生此bug主要是两个原因:
1.db文件里有两个功能一样的文件,所以删除其中的一个;


2.剩余的一个文件应该有拼写错误,所以先删除,再重建一个文件。

参考资料,Nic助教写的代码截图:

疑问:
1.总的来看,是把原db文件夹里的两个_add_user_id_to_moviews.rb都删掉了;但是从Nic助教的给的指令来看,也是建立了两次_add_user_id_to_moviews.rb的文件呀,为什么db文件夹里却只剩成了一个_add_user_id_to_moviews.rb文件呢?

2.为什么输入的指令是rails g migration add_user_id_to_movies 而不是 rails g migration add_user_id_to_movie?
教材里明明就是:rails g migration add_user_id_to_group, group 是单数呀?
教材截图:


教材网址:https://fullstack.xinshengdaxue.com/posts/73

3.为什么要输入rake db:drop db:create db:migrate这个指令呀?输入这个指令的功能是什么呀?或者能否告诉我一下能找到答案的网址?(我google 了没找到,求助?)

4.后续讨论:


Comments

comments powered by Disqus