Don't run non pg compatible migrations on empty tables
This commit is contained in:
parent
cb59930749
commit
9309456c41
11 changed files with 44 additions and 23 deletions
|
|
@ -57,7 +57,11 @@ SQL
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.pv_count
|
def self.pv_count
|
||||||
@pv_count ||= execute('SELECT count(*) FROM post_visibilities').to_a.first.first
|
@pv_count ||= lambda {
|
||||||
|
count = execute('SELECT count(*) FROM post_visibilities').to_a.first.first
|
||||||
|
count = count.last.to_i if self.connection.class == ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
|
||||||
|
count
|
||||||
|
}.call
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.up
|
def self.up
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
class PmForeignKeys < ActiveRecord::Migration
|
class PmForeignKeys < ActiveRecord::Migration
|
||||||
|
class Message < ActiveRecord::Base
|
||||||
|
end
|
||||||
|
|
||||||
def self.delete_disconnected_cvs
|
def self.delete_disconnected_cvs
|
||||||
execute <<SQL
|
execute <<SQL
|
||||||
DELETE conversation_visibilities FROM conversation_visibilities
|
DELETE conversation_visibilities FROM conversation_visibilities
|
||||||
|
|
@ -23,7 +26,7 @@ SQL
|
||||||
SQL
|
SQL
|
||||||
end
|
end
|
||||||
def self.up
|
def self.up
|
||||||
if execute('SELECT COUNT(*) FROM messages').to_a.first.first > 0
|
if Message.count > 0
|
||||||
delete_disconnected_conversations
|
delete_disconnected_conversations
|
||||||
delete_disconnected_messages
|
delete_disconnected_messages
|
||||||
delete_disconnected_cvs
|
delete_disconnected_cvs
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,25 @@
|
||||||
class ContactRemovePendingAddSharingAndReceiving < ActiveRecord::Migration
|
class ContactRemovePendingAddSharingAndReceiving < ActiveRecord::Migration
|
||||||
|
class Contact < ActiveRecord::Base; end
|
||||||
|
|
||||||
def self.up
|
def self.up
|
||||||
add_column :contacts, :sharing, :boolean, :default => false, :null => false
|
add_column :contacts, :sharing, :boolean, :default => false, :null => false
|
||||||
add_column :contacts, :receiving, :boolean, :default => false, :null => false
|
add_column :contacts, :receiving, :boolean, :default => false, :null => false
|
||||||
|
|
||||||
execute( <<SQL
|
if Contact.count > 0
|
||||||
UPDATE contacts
|
execute( <<SQL
|
||||||
SET contacts.sharing = true, contacts.receiving = true
|
UPDATE contacts
|
||||||
WHERE contacts.pending = false
|
SET contacts.sharing = true, contacts.receiving = true
|
||||||
|
WHERE contacts.pending = false
|
||||||
SQL
|
SQL
|
||||||
)
|
)
|
||||||
|
|
||||||
execute( <<SQL
|
execute( <<SQL
|
||||||
DELETE user_preferences.* FROM user_preferences
|
DELETE user_preferences.* FROM user_preferences
|
||||||
WHERE user_preferences.email_type = 'request_acceptance'
|
WHERE user_preferences.email_type = 'request_acceptance'
|
||||||
OR user_preferences.email_type = 'request_received'
|
OR user_preferences.email_type = 'request_received'
|
||||||
SQL
|
SQL
|
||||||
)
|
)
|
||||||
|
end
|
||||||
|
|
||||||
remove_foreign_key "contacts", "people"
|
remove_foreign_key "contacts", "people"
|
||||||
remove_index :contacts, [:person_id, :pending]
|
remove_index :contacts, [:person_id, :pending]
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
class DropRequestsTable < ActiveRecord::Migration
|
class DropRequestsTable < ActiveRecord::Migration
|
||||||
|
class Contact < ActiveRecord::Base; end
|
||||||
|
|
||||||
def self.up
|
def self.up
|
||||||
remove_foreign_key :requests, :column => :recipient_id
|
remove_foreign_key :requests, :column => :recipient_id
|
||||||
remove_foreign_key :requests, :column => :sender_id
|
remove_foreign_key :requests, :column => :sender_id
|
||||||
|
|
@ -14,7 +16,7 @@ class DropRequestsTable < ActiveRecord::Migration
|
||||||
DELETE contacts.* FROM contacts
|
DELETE contacts.* FROM contacts
|
||||||
WHERE contacts.sharing = false
|
WHERE contacts.sharing = false
|
||||||
SQL
|
SQL
|
||||||
)
|
) if Contact.count > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.down
|
def self.down
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
class TagNameUniqueness < ActiveRecord::Migration
|
class TagNameUniqueness < ActiveRecord::Migration
|
||||||
|
class Tag < ActiveRecord::Base; end
|
||||||
|
|
||||||
def self.downcase_tags
|
def self.downcase_tags
|
||||||
execute <<SQL
|
execute <<SQL
|
||||||
UPDATE tags
|
UPDATE tags
|
||||||
|
|
@ -30,8 +32,10 @@ SQL
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.up
|
def self.up
|
||||||
downcase_tags
|
if Tag.count > 0
|
||||||
consolidate_duplicate_tags
|
downcase_tags
|
||||||
|
consolidate_duplicate_tags
|
||||||
|
end
|
||||||
add_index :tags, :name, :unique => true
|
add_index :tags, :name, :unique => true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
class DowncaseUsernames < ActiveRecord::Migration
|
class DowncaseUsernames < ActiveRecord::Migration
|
||||||
|
class User < ActiveRecord::Base; end
|
||||||
|
|
||||||
def self.up
|
def self.up
|
||||||
execute <<SQL
|
execute <<SQL if User.count > 0
|
||||||
UPDATE users
|
UPDATE users
|
||||||
SET users.username = LOWER(users.username)
|
SET users.username = LOWER(users.username)
|
||||||
WHERE users.username != LOWER(users.username)
|
WHERE users.username != LOWER(users.username)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
class EliminateStrayUserRecords < ActiveRecord::Migration
|
class EliminateStrayUserRecords < ActiveRecord::Migration
|
||||||
|
class User < ActiveRecord::Base; end
|
||||||
|
|
||||||
def self.up
|
def self.up
|
||||||
|
return unless User.count > 0
|
||||||
duplicated_emails = execute("SELECT LOWER(email) from users WHERE users.email != '' GROUP BY LOWER(email) HAVING COUNT(*) > 1").to_a
|
duplicated_emails = execute("SELECT LOWER(email) from users WHERE users.email != '' GROUP BY LOWER(email) HAVING COUNT(*) > 1").to_a
|
||||||
duplicated_emails.each do |email|
|
duplicated_emails.each do |email|
|
||||||
records = execute("SELECT users.id, users.username, users.created_at from users WHERE LOWER(users.email) = '#{email}'").to_a
|
records = execute("SELECT users.id, users.username, users.created_at from users WHERE LOWER(users.email) = '#{email}'").to_a
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
class DeleteAllNewRequestNotifications < ActiveRecord::Migration
|
class DeleteAllNewRequestNotifications < ActiveRecord::Migration
|
||||||
|
class Notification < ActiveRecord::Base; end
|
||||||
def self.up
|
def self.up
|
||||||
execute <<SQL
|
execute <<SQL if Notification.count > 0
|
||||||
DELETE notifications.* FROM notifications
|
DELETE notifications.* FROM notifications
|
||||||
WHERE notifications.type = 'Notifications::NewRequest'
|
WHERE notifications.type = 'Notifications::NewRequest'
|
||||||
OR notifications.type = 'Notifications::RequestAccepted'
|
OR notifications.type = 'Notifications::RequestAccepted'
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
class DisablePasswordResetForAccountsWithoutUsernames < ActiveRecord::Migration
|
class DisablePasswordResetForAccountsWithoutUsernames < ActiveRecord::Migration
|
||||||
|
class User < ActiveRecord::Base; end
|
||||||
def self.up
|
def self.up
|
||||||
execute <<SQL
|
execute <<SQL if User.count > 0
|
||||||
UPDATE users
|
UPDATE users
|
||||||
SET email = ""
|
SET email = ""
|
||||||
WHERE username IS NULL
|
WHERE username IS NULL
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
class AddObjectIdToPost < ActiveRecord::Migration
|
class AddObjectIdToPost < ActiveRecord::Migration
|
||||||
|
class Post < ActiveRecord::Base; end
|
||||||
def self.up
|
def self.up
|
||||||
add_column(:posts, :objectId, :integer)
|
add_column(:posts, :objectId, :integer)
|
||||||
execute("UPDATE posts SET objectId = object_url")
|
execute("UPDATE posts SET objectId = object_url") if Post.count > 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.down
|
def self.down
|
||||||
add_column(:posts, :objectId, :integer)
|
remove_column(:posts, :objectId, :integer)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ ActiveRecord::Schema.define(:version => 20110606192307) do
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "conversation_visibilities", ["conversation_id", "person_id"], :name => "index_conversation_visibilities_on_conversation_id_and_person_id", :unique => true
|
add_index "conversation_visibilities", ["conversation_id", "person_id"], :name => "index_conversation_visibilities_on_everything", :unique => true
|
||||||
add_index "conversation_visibilities", ["conversation_id"], :name => "index_conversation_visibilities_on_conversation_id"
|
add_index "conversation_visibilities", ["conversation_id"], :name => "index_conversation_visibilities_on_conversation_id"
|
||||||
add_index "conversation_visibilities", ["person_id"], :name => "index_conversation_visibilities_on_person_id"
|
add_index "conversation_visibilities", ["person_id"], :name => "index_conversation_visibilities_on_person_id"
|
||||||
|
|
||||||
|
|
@ -93,8 +93,6 @@ ActiveRecord::Schema.define(:version => 20110606192307) do
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "conversations", ["author_id"], :name => "conversations_author_id_fk"
|
|
||||||
|
|
||||||
create_table "invitations", :force => true do |t|
|
create_table "invitations", :force => true do |t|
|
||||||
t.text "message"
|
t.text "message"
|
||||||
t.integer "sender_id", :null => false
|
t.integer "sender_id", :null => false
|
||||||
|
|
@ -119,7 +117,6 @@ ActiveRecord::Schema.define(:version => 20110606192307) do
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "likes", ["author_id"], :name => "likes_author_id_fk"
|
|
||||||
add_index "likes", ["guid"], :name => "index_likes_on_guid", :unique => true
|
add_index "likes", ["guid"], :name => "index_likes_on_guid", :unique => true
|
||||||
add_index "likes", ["post_id"], :name => "index_likes_on_post_id"
|
add_index "likes", ["post_id"], :name => "index_likes_on_post_id"
|
||||||
|
|
||||||
|
|
@ -144,7 +141,6 @@ ActiveRecord::Schema.define(:version => 20110606192307) do
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "messages", ["author_id"], :name => "index_messages_on_author_id"
|
add_index "messages", ["author_id"], :name => "index_messages_on_author_id"
|
||||||
add_index "messages", ["conversation_id"], :name => "messages_conversation_id_fk"
|
|
||||||
|
|
||||||
create_table "notification_actors", :force => true do |t|
|
create_table "notification_actors", :force => true do |t|
|
||||||
t.integer "notification_id"
|
t.integer "notification_id"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue