PENGZhaoqing / CourseSelect

校园选课系统样本 (a template for course selection system by Ruby on Rails)
https://courseselect.herokuapp.com/
MIT License
106 stars 205 forks source link

执行rake test 报错 #85

Closed chengmonk closed 5 years ago

chengmonk commented 6 years ago
`UserTest#test_email_addresses_should_be_unique_and_the_uppercase_will_be_converted_to_lowercase:
ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column "increment_by" does not exist
LINE 1: ...rses_id_seq"', (SELECT COALESCE(MAX("id")+(SELECT increment_...
                                                             ^
:               SELECT setval('"public"."courses_id_seq"', (SELECT COALESCE(MAX("id")+(SELECT increment_by FROM "public"."courses_id_seq"), (SELECT min_value FROM "public"."courses_id_seq")) FROM "courses"), false)
`

执行之后会出现类似情况,看不太懂应该在哪里、哪张表里面加入increment_by 这个属性这一列,麻烦您解答下。

PENGZhaoqing commented 6 years ago

test_email_addresses_should_be_unique_and_the_uppercase_will_be_converted_to_lowercase 看报错应该是你的email地址不唯一,比如大写的Gmail和小写gmail,需要把大写转小写再往数据库里写

increment_by 这个貌似是ruby内部的问题,可能你把email问题解决了,这个问题就没有了,如果还有错你需要详细描述你的数据表,贴上你的代码

chengmonk commented 6 years ago

我感觉是某个数据库中的表缺少这一列,因为不止这一个地方报找不到increment_by的这个错误,执行完rake test之后报出九个同样的错误。我犹豫不知道是哪个数据库中的表缺少这一列,所以我就在所有的表中加上了这一列,然后就不报少这一列的错误了,但是会报出缺少别的列属性的错误。

PENGZhaoqing commented 6 years ago

应该是环境问题吧,参考这个https://github.com/rails/rails/issues/28780

chengmonk commented 5 years ago

十分感谢,我将数据库版本回到了9.2就可以正常使用了,好像是在9.6版本以上把一些属性列给删除了。