Yep, there are violating records
This commit is contained in:
parent
1ba4ece23c
commit
597e71c216
1 changed files with 27 additions and 0 deletions
|
|
@ -1,5 +1,32 @@
|
|||
class PmForeignKeys < ActiveRecord::Migration
|
||||
def self.delete_disconnected_cvs
|
||||
execute <<SQL
|
||||
DELETE conversation_visibilities FROM conversation_visibilities
|
||||
LEFT OUTER JOIN conversations ON conversation_visibilities.conversation_id = conversations.id
|
||||
LEFT OUTER JOIN people ON conversation_visibilities.person_id = people.id
|
||||
WHERE people.id IS NULL OR conversations.id IS NULL
|
||||
SQL
|
||||
end
|
||||
def self.delete_disconnected_messages
|
||||
execute <<SQL
|
||||
DELETE messages FROM messages
|
||||
LEFT OUTER JOIN conversations ON messages.conversation_id = conversations.id
|
||||
LEFT OUTER JOIN people ON messages.author_id = people.id
|
||||
WHERE people.id IS NULL OR conversations.id IS NULL
|
||||
SQL
|
||||
end
|
||||
def self.delete_disconnected_conversations
|
||||
execute <<SQL
|
||||
DELETE conversations FROM conversations
|
||||
LEFT OUTER JOIN people ON conversations.author_id = people.id
|
||||
WHERE people.id IS NULL
|
||||
SQL
|
||||
end
|
||||
def self.up
|
||||
delete_disconnected_conversations
|
||||
delete_disconnected_messages
|
||||
delete_disconnected_cvs
|
||||
|
||||
add_foreign_key :conversation_visibilities, :conversations, :dependent => :delete
|
||||
add_foreign_key :conversation_visibilities, :people, :dependent => :delete
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue