diff --git a/app/models/course_status.rb b/app/models/course_status.rb index d5a01ac4b..b36661ebe 100644 --- a/app/models/course_status.rb +++ b/app/models/course_status.rb @@ -1,3 +1,7 @@ class CourseStatus < ActiveRecord::Base attr_accessible :changesets_count, :course_ac_para, :course_id, :grade, :watchers_count + + belongs_to :course + validates_presence_of :course_id + validates_uniqueness_of :course_id end diff --git a/db/migrate/20140603042015_stored_course_procedure.rb b/db/migrate/20140603042015_stored_course_procedure.rb index 2f5faf5c7..426567cac 100644 --- a/db/migrate/20140603042015_stored_course_procedure.rb +++ b/db/migrate/20140603042015_stored_course_procedure.rb @@ -31,7 +31,7 @@ class StoredCourseProcedure < ActiveRecord::Migration courseStatus.watchers_count = projectstatus.watchers_count courseStatus.grade = projectstatus.grade courseStatus.course_ac_para = projectstatus.course_ac_para - courseStatus.save(:validate => false) + courseStatus.save() end end end diff --git a/db/migrate/20140704034832_clear_course_status.rb b/db/migrate/20140704034832_clear_course_status.rb new file mode 100644 index 000000000..527bfd412 --- /dev/null +++ b/db/migrate/20140704034832_clear_course_status.rb @@ -0,0 +1,16 @@ +class ClearCourseStatus < ActiveRecord::Migration + def up + # 删除重复的课程状态 + # 之前做迁移的时候未加验证可能引起此问题 + courseidlist = "(-1" + CourseStatus.all.each do |status| + sql = "delete from course_statuses where course_id=" + status.course_id.to_s + " and id<>" + status.id.to_s + + " and course_id not in " +courseidlist + ")" + courseidlist += "," + status.course_id.to_s; + execute(sql) + end + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 371883051..32a903aa8 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140703085204) do +ActiveRecord::Schema.define(:version => 20140704034832) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -794,20 +794,20 @@ ActiveRecord::Schema.define(:version => 20140703085204) do end create_table "relative_memos", :force => true do |t| - t.integer "osp_id", :null => false + t.integer "osp_id" t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :null => false + t.string "subject", :null => false + t.text "content", :limit => 16777215, :null => false t.integer "author_id" - t.integer "replies_count", :default => 0 + t.integer "replies_count", :default => 0 t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.boolean "is_quote", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count_crawl", :default => 0 - t.integer "viewed_count_local", :default => 0 + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 t.string "url" t.string "username" t.string "userhomeurl"