From 864ef179418e2ab4635adc2179848cde8ecf509b Mon Sep 17 00:00:00 2001 From: nwb Date: Fri, 4 Jul 2014 13:38:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E7=90=86=E8=AF=BE=E7=A8=8B=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E8=A1=A8=EF=BC=8C=E4=BF=AE=E6=AD=A3=E5=90=8C=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=87=BA=E7=8E=B0=E5=A4=9A=E6=AC=A1=E7=9A=84?= =?UTF-8?q?BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/course_status.rb | 4 ++++ .../20140603042015_stored_course_procedure.rb | 2 +- .../20140704034832_clear_course_status.rb | 16 +++++++++++++ db/schema.rb | 24 +++++++++---------- 4 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 db/migrate/20140704034832_clear_course_status.rb 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"